designer做出来的ui文件在windows和unix下的字体大小不同

boxxer 2010-09-27 09:39:00
ui文件是在windows下做的,但是转到solaris下编译的时候发现ui文件中字的大小或者字体(不确定是字体还是字的大小)发生了变化,导致ui中按钮上的文字只能看到中间的部分,两端的文字看不到了。


第一次做Qt跨平台的开发,不知道是什么原因。麻烦各位指点。
...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyu_tiger 2010-10-23
  • 打赏
  • 举报
回复
有同样的问题, 但我还没到这一步呢,功能还没玩呢~
boxxer 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 die654456 的回复:]

不同的OS的显示方式不一样,QT的跨平台是基于Qt库的跨平台。

如果想按钮上的文字都能显示,可以采用下面思路:
QString str=“123456”;
使用boundingRect计算该str的size大小,
用上边的size设置按钮的最小size , QPushButton::setMininumSize(QSize &)

这样应该在哪个平台上都能显示完整了……
[/Quote]

今天又仔细对比了一下,发现solaris平台和windows平台ui文件中文字的字体和大小都不一样。
在windows平台中文字的字体是宋体,字号是9
可能是solaris平台下没有宋体,所以ui中的文字字体变成了sans serif,字号成了13。
因此才会有按钮上的文字两端显示不出来的结果,但是目前我还不知道有什么快捷的方法可以是solaris下按钮的文字可以完整显示出来。

有知道的同学指点一下。
dext 2010-09-27
  • 打赏
  • 举报
回复
这里有一个快捷的方法,很久以前我用过。
在 字符串的两边 都加若干个空格。

当然还有正道的方法

QRect QFontMetrics::boundingRect ( const QString & text ) const
DIE654456 2010-09-27
  • 打赏
  • 举报
回复
不同的OS的显示方式不一样,QT的跨平台是基于Qt库的跨平台。

如果想按钮上的文字都能显示,可以采用下面思路:
QString str=“123456”;
使用boundingRect计算该str的size大小,
用上边的size设置按钮的最小size , QPushButton::setMininumSize(QSize &)

这样应该在哪个平台上都能显示完整了。

16,173

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧