当前位置: 首页 > 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);

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

http://www.dtcms.com/a/202168.html

相关文章:

  • 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的代码注释规范与实践
  • 【笔试强训day37】
  • 从 0 到 1 选对 AI 自动化平台,深度对比三大AI自动化平台:n8n vs Dify vs Coze(附选型指南与实战案例)
  • 简易的Java制作的c4爆炸倒计时程序
  • 时源芯微|接口滤波与防护电路的设计
  • 【课堂笔记】核方法和Mercer定理
  • 打造高效数据处理利器:用Python实现Excel文件智能合并工具
  • Java EE进阶1:导读
  • 科技赋能·长效治理|无忧树建筑修缮渗漏水长效治理交流会圆满举行!
  • Spring Boot 使用 jasypt配置明文密码加密
  • Canvas SVG BpmnJS编辑器中Canvas与SVG职能详解