当前位置: 首页 > news >正文

做好的QT软件,换一个笔记本打开后发现字体很小,部分字体还被控件遮挡

出现这种情况的原因主要是屏幕的DPI(每英寸点数)不同。Qt中控件的大小单位为像素,在高DPI下,控件会变小,低DPI下控件会变大。而Qt中字体的单位默认为磅,无论在什么显示器上显示同一磅值的字体,其大小理论上不会发生变化。这就导致在高DPI屏幕上,可能因控件变小而造成字体显示不全或字体相对控件显得过大被遮挡的情况。

以下是一些改善的方法:

  • 设置全局字体:可以在main函数中设置全局字体,将字体的单位由磅转换为像素。示例代码如下:
#include <QApplication>
#include <QFont>int main(int argc, char *argv[]) {QApplication a(argc, argv);// 设置全局字体QFont font("宋体");int pointSize = font.pointSize();font.setPixelSize(pointSize * 90 / 72); // 进行磅到像素的转换a.setFont(font);// 其余应用程序代码return a.exec();
}
  • 使用样式表:在Qt Creator中加入样式表,为需要调整字体的控件设置字体大小为像素值。例如,若要设置QLabel的字体大小为12像素,可以在样式表中添加QLabel { font - size: 12px; }。这样可以确保在不同DPI的屏幕上,字体大小能随控件大小自适应变化。
  • 设置EnableHighDpiScaling属性(推荐):如果使用的Qt版本在5.6.0之后,可以在创建QApplication对象之前设置QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);,启用高DPI缩放功能,让Qt自动处理不同DPI屏幕下的界面缩放问题。示例代码如下:
#include <QApplication>
#include <QCoreApplication>int main(int argc, char *argv[]) {QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QApplication a(argc, argv);// 其余应用程序代码return a.exec();
}
http://www.xdnf.cn/news/412417.html

相关文章:

  • 提示工程实战指南:Google白皮书关键内容一文讲清
  • 第二十二天打卡
  • #将一个 .c 文件转变为可直接运行的文件过程及原理
  • CTF实战秘籍:跨平台文件合并与数据重构技术
  • linux-进程信号的产生
  • OJ判题系统第4期之判题机模块架构——设计思路、实现步骤、代码实现(工厂模式、代理模式的实践)
  • 嵌入式MCU和Linux开发哪个好?
  • FreeRTOS的学习记录(基础知识)
  • FPGA----petalinux开机启动自定义脚本/程序的保姆级教程(二)
  • 【超详细教程】安卓模拟器如何添加本地文件?音乐/照片/视频一键导入!
  • 利用基于LLM的概念提取和FakeCTI数据集提升网络威胁情报对抗虚假信息活动的能力
  • 区块链+农业:从田间到餐桌的信任革命
  • Ref是什么
  • 洛谷 P1082:[NOIP 2012 提高组] 同余方程 ← 求逆元
  • 代码随想录训练营第二十二天| 101.对称二叉树 100.相同的树
  • 综合实验二之grub2密文加密
  • (leetcode) 力扣100 10.和为K的子数组(前缀和+哈希)
  • 【Bootstrap V4系列】学习入门教程之 组件-模态框(Modal)
  • css 点击后改变样式
  • Megatron系列——张量并行
  • 我们来学mysql -- 安装8.4版本
  • 在CentOS 7上仅安装部署MySQL 8.0客户端
  • 将arduino开发的Marlin部署到stm32(3D打印机驱动)
  • 【GESP】C++三级练习 luogu-B2156 最长单词 2
  • NeurIPS 2025 截稿攻略
  • 无线传感器网络期末复习自整理资料(天大)
  • 【Game】Powerful——Hero Trial(11)
  • Windows下安装Docker Desktop到C盘以外的盘
  • 透视相机:创意摄影新体验,解锁照片无限可能
  • 计网第四次作业