主题 : qt 4.6.3 字体大小问题 求助! 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 27835
精华: 0
发帖: 117
金钱: 590 两
威望: 118 点
综合积分: 234 分
注册时间: 2010-09-01
最后登录: 2017-06-22
楼主  发表于: 2011-04-23 00:17

 qt 4.6.3 字体大小问题 求助!

PC上跑的时候,大小没有问题,下到开发板上大小是一样的,选用默认的QPF和下载wenquanyi qpf都是这个情况。
没有办法就下了一个ttc的和一个ttf试了一下,倒是可以按我设定的调整大小,但是即使是选用72的字体(很大了),实际显示也太小,有没有其他方法得到大字体,因为是7寸屏做界面,这个字体怎么都调不好,望给与帮助!
网上说的设置字体的方法都试了,还是不行。
  QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF8"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF8"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF8"));

   QFont font("wenquanyi",36,QFont::Normal) ;  

上面这些要不要似乎不影响字体大小,什么问题?

QT CREATOR中字体选用Aharoni CLM      或者 文鼎  大小都没有什么变化。
级别: 侠客
UID: 27835
精华: 0
发帖: 117
金钱: 590 两
威望: 118 点
综合积分: 234 分
注册时间: 2010-09-01
最后登录: 2017-06-22
1楼  发表于: 2011-04-25 19:27
折腾了几天,还是放弃了,留这篇算是给后来的有所帮助。
经过这段时间的呕心沥血,算是清楚了QT的一些字体问题。
qt creator在做界面的时候设置的字体是要依赖系统字体库的,在USR/SHARE/FONTS 下面,大家也可以把自己下的字体搞进去稍微设置一下就能用(不是本文重点)。
系统支持的所有字体最大72号(这也是win的最大字号),如果你有大字号的字体,那敢情好,很多问题都没有了。
这个72号在19(1440*900)寸屏上显示大家都觉得够大了,没太在意,现在把这个72号子放到7寸(800*480)屏上,因为分辨率相差不太大,但是显示面积小了很多,所以你看到的72号字体和实际显示屏的字体小了很多,可以这样理解,7寸屏的每个像素点比19寸的小得太多,导致同一个字号的子大小相差太多。
但是他有一个绝佳的理由,你可以设定显示不同大小的字体,就如同你用的系统一样。而qpf则不行,你必须为每一个字号做一个qpf文件并把它拷贝到开发板的字库文件夹下(同系统一致路径),当然这也不是问题。

现在来看,如果真的想显示大字体,要不是能搞到比72号大的字体(要系统支持,网上找了好久放弃了),那就只能倒回去还是用QT的qpf,现在就是qpf字体问题,网上能找到的大多最大180的qpf字体,还是太小,最后还是回到makeqpf的问题,用qvfb+makeqpf做自己的大字体。
友善的4.6.3编译好后(用压缩包里面的BUILD-ALL)是有makeqpf的,但是没有qvfb,当时突然想到qtopia2.2.0是带有qvfb,欣喜之下把两个搞在一起,结果是能看到makeqpf的操作界面,可是操作不了,鼠标乱飞。到处找啊找,最后还是确定问题在这个qvfb上面,可能两个的版本不一致导致的。然后没有办法,只有想办法搞到至少是4.6.3的qvfb,又是找啊找,最后发现在编译4.6.3的时候如果什么环境参数都不带,搞出来的就是所谓的PC完整版本的4.6.3,还是回到最不想干的事情,重新编译安装一个完整的4.6.3.
然后开始,configure 》gmake》gmake install,前途茫茫,一个通宵笔记本没关机,顶不住睡了起来一看,卡死在那里(大部分人编译安装QT相关文件的相同情况),跳楼的心都有了,但是查看了一下果真zaitools下面有qvfb的源文件,make它,结果还是报错了,想想可能没装好也没分析错误原因,这一点是做事情的疏忽,下面有写原因。
一怒之下,不行再来,又是一个漫长的下午,6个小时后,1G多的4.6.3+800M的QT 4.6.3搞定了,哎总算松口气。重新回到qvfb下,make它,还是报错过不去,这回是死了的心都有,难道还要一个通宵?仔细查看错误报告,查了一下,有个库不对,上网搜了一下,很简单的一个链接库文件名字不同(似乎是so.6不能要后面的6),复制了一个(怕了,每做完一步都把成功的存下来),改了重新make,终于好了,连上qvfb,心喜的画面终于出现,总算功夫没白花,想想前次可能这样就行了,哎。
开始用ttf座qpf字体,做完一看一个72的100多M,吓了一跳,改回36的,几十M总算差不多,想想板子不在乎这个大小先下到板子看一看,确实够大。
文件太大,没办法。仔细看看makeqpf的使用居然可以只生成自己想要的部分字的字体,好啊,为了图简单,就把所有的源程序(包括UI生成的)拷贝到一个文件中,然后生成这个文件的大号字体,这回200k,可以了,下砸下去看了一下总算行了。(注意这种方法只能用自己程序中出现的有限的字,如果有新的字不被包含还是口口,因为她找不到这个字的字体,那的再来一次,建议最后程序界面固定后再生成)。
大大小小的生成了各种大小的,最后就是板子上显示了,因为默认的字号好像是最小的,也就是说你把140,160,180都拷贝进去,他还是只认一种,显示出来的还是一般大小,这时候需要在程序中使用setfont了,但是又碰到一个更让我纠结的问题,按钮上的字体怎么设定大小,因为这个按钮的源码是ui自己生成的,所以你没有办法改他的源码,痛苦啊。
现在在想是不是不用qt creator的整体编译方式,先让他生成。h和。cpp文件,然后自己进去改好程序(字体部分),然后再编译,走到这一步已经心力憔悴了,和我最开始认为这是个小问题已经大相径庭。
暂时放一放了,休息下,有哪位高手有经验往不胜赐教,这里感谢了。
级别: 侠客
UID: 27835
精华: 0
发帖: 117
金钱: 590 两
威望: 118 点
综合积分: 234 分
注册时间: 2010-09-01
最后登录: 2017-06-22
2楼  发表于: 2011-04-25 19:35
刚刚想了想是不是因为没有fontdir文件导致qtcreator按钮直接设定的字号找不到了?回去试试,如果可以,再回来给大家做报告。
级别: 侠客
UID: 40927
精华: 0
发帖: 53
金钱: 265 两
威望: 53 点
综合积分: 106 分
注册时间: 2011-03-23
最后登录: 2021-09-13
3楼  发表于: 2011-06-13 02:34
DPI问题