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

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.lryc.cn/news/2384678.html

相关文章:

  • MySQL的相关操作
  • 从elf文件动态加载的过程解释got,plt及got.plt,plt.sec
  • 鸿蒙HarmonyOS多设备流转:分布式的智能协同技术介绍
  • XXE(外部实体注入)
  • jenkins凭据管理
  • 驱动开发硬核特训 · Day 31:理解 I2C 子系统的驱动模型与实例剖析
  • 9大开源AI智能体概况
  • 【python】局域网内通过python远程重启另一台windows电脑
  • 超越感官的实相:声、光、气味的科学与哲学探微
  • Python邮件处理:POP与SMTP
  • 什么是VR场景?VR与3D漫游到底有什么区别
  • python学习day2:进制+码制+逻辑运算符
  • 【分布式文件系统】FastDFS
  • 14、自动配置【源码分析】-初始加载自动配置类
  • word为章节标题添加自动编号
  • 无人机飞行间隔安全智能评估、安全风险评估
  • C++成员对象和封闭类
  • 【VLNs篇】03:VLMnav-端到端导航与视觉语言模型:将空间推理转化为问答
  • PCB设计实践(二十五)贴片电阻与插件电阻的全面解析:差异、演进与应用场景
  • 知道不知道
  • 文章记单词 | 第106篇(六级)
  • SpringBoot项目中Redis的使用
  • Canvas设计图片编辑器全讲解(一)Canvas基础(万字图文讲解)
  • 利用Qt绘图随机生成带多种干扰信息的数字图片
  • STM32——从点灯到传感器控制
  • java day14
  • Tailwind css实战,基于Kooboo构建AI对话框页面(一)
  • 重塑数学边界:人工智能如何引领数学研究的新纪元
  • docker部署并测试翻译模型-CSANMT连续语义增强机器翻译
  • 蓝桥杯2025.5.23每日一题-儿童数