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

QT高DPI支持

核心函数:

qputenv("QT_SCREEN_SCALE_FACTORS", envVar);
如:
qputenv("QT_SCREEN_SCALE_FACTORS", "1.2");

这是我个人目前用的效果最好的,可惜数值不能小于1,小于1的时候,会出问题。

需要程序启动前计算出缩放比例,然后缩放就可以了。不能使用

QGuiApplication::primaryScreen();

QT的函数来获取屏幕信息,但可以用系统API来获取,计算出缩放比例,就可以了。

下面是一些其他的缩放方式:

1.QT_SCALE_FACTOR

qputenv("QT_SCALE_FACTOR", "1.48");

非整数缩放时,界面偶尔会有一些线条出现,并不完美,且无法用:

QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::Round);

来消除。

2.QT_DEVICE_PIXEL_RATIO

QT_DEVICE_PIXEL_RATIO //不推荐使用,没有设置QT_SCALE_FACTOR时生效。

3.QT_AUTO_SCREEN_SCALE_FACTOR

QT_AUTO_SCREEN_SCALE_FACTOR //缩放系数由系统(Platform)根据DPI计算,值为0或者非0值,表示开启或关闭DPI自适应,若同时设置QT_SCALE_FACTOR,最终的缩放系数为二者乘积。qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1");

4.开启高DPI缩放:

QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::Round);

可以自动缩放,效果也不错,但是在分辨率低的时候效果并不好。

相关文章:

  • AI人工智能的SGLang、vllm和YaRN大语言模型服务框架引擎的对比
  • HarmonyOS应用开发入门宝典——项目驱动学习法实践
  • 中国机加工的市场概况及冷镦技术对于机加工替代的趋势
  • Java 04 API
  • 深入浅出人工智能:机器学习、深度学习、强化学习原理详解与对比!
  • docker容器知识
  • JIT即时编译器全面剖析:原理、实现与优化
  • Java实现基于bitmap的字符串去重统计
  • Pycharm-jupyternotebook不渲染
  • 工作流引擎-01-Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎,支持现实世界的流程自动化需求
  • spark-shuffle 类型及其对比
  • Spring AI实现一个简单的问答系统
  • Java程序员从0学AI(二)
  • C# 使用 OpenCV 基础
  • spark调度系统核心组件SparkContext、DAGSchedul、TaskScheduler介绍
  • 【Fifty Project - D29】
  • 容器环境渗透测试工具(docker渗透测试工具、kubernetes)
  • 在CuPy中使用多节点多GPU环境
  • 2025年医美行业报告60+份汇总解读 | 附 PDF 下载
  • Golang的代码注释规范与实践
  • 花290多万维修保质期仅一年多?媒体四问凤阳鼓楼“瓦片脱落”
  • 李根读《野兽之魂》|拨开高深的布幔,直窥历史的复杂
  • 网约车司机猝死,平台和保险公司均拒绝赔偿,法院判了
  • 上千螺母引发的枪支散件案:五金厂老板的儿子被诉,律师作无罪辩护
  • 上海将建设万兆小区、园区及工厂,为模型训练数据的传输提供硬件支持
  • 世界高血压日|专家:高血压患者控制血压同时应注重心率管理