解决qt在相同分辨率不同宽度的屏幕下字体显示位置不一样的问题

在不同宽度的1920*1080分辨率屏幕上,Qt应用的QLabel标题出现偏左和字体大小差异。原因是Qt设计器使用点数(point)而非像素设置字体大小。通过将点数转换为像素大小并调整label宽度以匹配窗口大小,配合设置内容居中,解决了标题居中问题。
摘要由CSDN通过智能技术生成

使用qlabel给Qwidget做标题,在分辨率为1920*1080的笔记本显示器上看到label标题在窗口中居中,换了一台分辨率也是1920*1080但更宽和更大的台式机显示器后,此label上的标题在窗口中变得偏左且字体看起来小。同样的显示器不同宽度的屏幕字体大小显示不一样造成标题没有居中。因字体和内容都是在qt设计师上设定的,qt设计师设定的字体是根据point(磅)大小来显示而不是像素大小显示,即获取字体大小的函数是PointSize(),而不是Pixsize()。网上说根据像素大小显示的字体在相同分辨率下显示行为是一样,但是根据point大小显示的字体, 规定了实际中我们肉眼看到的字体的大小 他和pixel无关的~ 他和显示器无关  不管在什么样上的显示器上 规定大小是多少就是多少。因此如果要使字体与显示器相关,则必须将字体改为按像素大小设置。根据此处计算方法,http://blog.csdn.net/liuqz2009/article/details/7208931

先获取pointsize大小,再转换为像素大小。

int pointsize = m_font.pointSize();
m_font.setPixelSize(pointsize*90/72

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值