首页 > 编程知识 正文

linux qt 打包(linux qt安装)

时间:2023-05-05 20:45:45 阅读:77009 作者:3812

转自: https://blog.csdn.net/yimi杨光1314/article/details/7239716

概述:

将QT4.7.0移植到开发板时,中文支持是必不可少的。 要使QT支持中文,如何创建QT支持的字体文件,使QT UI编辑器的大小与开发板的大小匹配? 作者通过实验逐一进行了验证。

介绍:

1、初体验:

如果QT程序中指定的字体和大小与/fonts目录对应的词典文件不存在,QT将选择并显示存在的词典文件。 在中,如果系统只有一个所需的字体和大小,则可以删除fonts目录中所有不需要的词典文件,只保留所需的字体文件。

这是一种有用的方法,无论程序中设置的字体和大小如何,它始终以fonts目录下的此唯一词典文件格式显示。 但是,在很多情况下,我们需要使多种字体和字体大小共存。 下面介绍如何添加四种字体大小(wenquanyi 12 13 15 16 )、粗体和粗体共计八个词典文件,以及如何在QFont中设置它们以访问相应的词典文件。

首先,下载font_wenquanyi字体。 字体有ttf、bdf、qpf等格式。 这里下载的是qpf格式,否则需要转换。

然后,将下载的词典文件复制到开发板的/usr/local/trolltech/Qt嵌入式-4.7.0- arm/lib/fonts目录中。 请参考下图。

以wenquanyi_150_50为例,wenquanyi表示字体,150表示15号字体,50表示纤细,75表示粗体。

qt的步骤如下。

以wenquanyi_150_50为例,wenquanyi表示字体,150表示15号字体,50表示纤细,75表示粗体。

qt的步骤如下。

#包含

#包含

#include 'hmi_desktop.h '

(intmain(intargc,char*argv[] ) ) ) ) ) ) ) ) ) ) )

{

qpplicationa(argc,argv );

//中文支持

qtext codec :3360 setcodecforlocale (qtext codec 33603360 codec forname ) (utf-8 );

qtext codec :3360 setcodecfortr (qtext codec :3360 codec forname (' utf-8 ' ) ); //tr支持中文

qtext codec : setcodecforcstrings (qtext codec :3360 codec forname ) (utf-8 ); //支持中文文件名显示

q字体;

font.setpointsize(160; //实际上是16个字,但是如果定为16的话就不行了

font.setfamily((Wenquanyi ) );

font.setbold(false;

a .设置字体(字体);

//-

Hmi_desktop w;

w.show (;

returna.exec (;

}

在开发板上运行,怎么样? 字体是不是变了? 很高兴,变得擅长吧!

那么,请不要得意忘形。 其实这只是个开始。 显示32或48个字符的字体,或者显示其他字体,无法在网上下载该怎么办?

2、QPF文件的制作方法

订购真正的资料。 介绍如何创建QPF文件。

QT有一个名为makeqpf的工具,专门用于转换qpf文件,但该程序只能在嵌入式环境中运行,因此需要编译X86版本的QT4.7。

解压缩Qt-Everywhere-open source-src-4.7.0.tar.gz,分别命名为qt-4.7.0-x86、qt-4.7.0-pc (编译x86 )

cd qt-4.7.0-x86

./configure-prefix/usr/local/trolltech/Qt-4.7.0-x86 -开放资源确认许可-嵌入式x86-Qt--

化妆

制造安装

cd qt-4.7.0-pc

./configure-prefix/usr/local/troll tech/Qt-4.7.0-PC-open source-confirm-license

化妆

制造安装

#然后安装PC版本的qvfp

cd qt-4.7.0-pc

CD工具/qv

fp

make

cp qt-4.7.0-pc/drdhm/qvfp /usr/local/Trolltech/qt-4.7.0-x86/drdhm

安装完成后,在下面的目录里就可以找到它们

cd /usr/local/Trolltech/qt-4.7.0-x86/drdhm/

准备要转换的字体文件,可在C:WINDOWSFonts 下找,或者去下载。

这里我们是下载的wqy-zenhei.ttf。

将wqy-zenhei.ttf字体文件拷贝到/usr/local/Trolltech/qt-4.7.0-x86/lib/fonts中,这样是为了在makeqpf中找到它

启动qvfb,并在qvfb里运行makeqpf软件

./qvfb -width 800 -height 480 &

./makeqpf -qws

分别输出16、24、32等字号,这样在输出路径指定的目录里就能看到这些文件了(注意:如果是选择根目录,则看不到文件,要在终端里才能看到)

为什么是qpf2,细致的朋友可能看出来了,这得说明一下,qpf是qt2和qt3用的,后来qt4改成了qpf2,而且我们可以看到,字号16的,直接就是16,不再是160了,下面就来看看使用吧,和上面的还是有一点点区别的。

还是向上面一样设置,假设我要显示24号的字体:

QFont font;

font.setPointSize(160);  这里是设成24吗,设置后发现很小,只有当设成80的时候,才够24的大小,看了帮助文档后,发现原来 setPixelSize 才是设置字号的,改成 font.setPixelSize(24); 就可以了。(pointSize是一个相对值,和DPI相关;一般Windows上的DPI值是96,而embedded linux的DPI值一般是72,所以字体会显得小了很多。所以应该用QFont::setPixelSize)。

font.setFamily(("wenquanyi"));//这个Family怎么设,是文件名吗,不是,要在这里看

font.setFamily(("

WenQuanYi Zen Hei"));

//有空格的,不要丢了

其它的设置就一样了,

运行一下,字是不是变大了。

3、解决setPointSize字太小的问题

在UI编辑器里,并没有setPixelSize的设置,只有setPointSize。如果要在开发板上显示正常的字号,必须要将PointSize设得很大,那么在计算机上的字就变得超大,无法通过ui编辑器达到所见即所得的效果。前面我们说过,这是因为显示器DPI不同的原因。在QT应用中,可通过环境变量来设置DPI,如下:

export QWS_DISPLAY="LinuxFB:mmWidth95:0"

export QWS_SIZE="640x480"

重新启动QT应用程序时,发现字号和计算机上的字号相差不那么大了,95的值并不是很准确,需要跟据显示器来调整,输入合适的DPI值,(我用群创AT056TN53的屏,DPI值设置为180比较合适)

4、进一步的尝试

QT直接支持TTF的字体文件,我们直接复制几个ttf文件,至/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib/fonts目录下,将qpf的文件删除

重新在开发板上运行,发现几种字体和字号都能支持,看来系统中有多种字号,用ttf文件还是蛮方便的。

结语:

有人说,ttf文件很大,比较费flash,QPF是点阵字库文件,占用flash较小,而且访问速度比ttf快。目前,通过目测暂时分辩不出快慢,但TTF文件只有10M左右,转换出来的qpf文件加起来一共有一百来兆。比ttf费flash多了,不知是否是设置的原因。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。