分享

QT程序在不同分辨率电脑上字体变大,溢出控件

 myallmy 2022-10-05 发布于北京

前言

最近开发过程中,发现在本地运行QT程序,显示界面是没有问题的,但是在其他电脑上出现过字体变大,溢出控件的现象。

  • 本地运行显示正常,字体能够正常显示。
    在这里插入图片描述
  • 在其他电脑上运行,字体显示异常,大小改变,溢出控件。
    在这里插入图片描述

原因

Qt中的字体Qfont定义字体大小是有两种方式,一种是PointSize,另一种是PixelSize

  • PointSize的单位不是像素,它是以字体在屏幕实际显示的大小为单位的,它和屏幕的分辨率以及屏幕的真实尺寸相关,即它的单位即为屏幕上显示的字体大小。
  • PixelSize实际上是以像素为单位,即PixelSize的大小即为实际的像素大小。

开发过程中,QT默认使用的是PointSize的设置方法,所以在不同分辨率电脑下的会出现字体大小、控件位置异常的情况。

解决办法

1.main函数中设置全局字体

在这里插入图片描述

	QFont font(QStringLiteral("Tahoma"));   //设置一种字体
	font.setPixelSize(12);                  //字体大小,等同于PointSize的9点大小
	qApp->setFont(font);

2.QT Creator中加入样式表

  • 在QT Creator的UI界面右击,选择“改变样式表”在这里插入图片描述

  • 单击“添加字体”
    在这里插入图片描述
    注意,这里的字体默认使用的是PointSize,需要改成PixelSize,把9pt改为12px即可。
    在这里插入图片描述
    在这里插入图片描述

效果

再次运行,界面显示恢复正常。
在这里插入图片描述

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多