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

QT 高DPI解决方案

一、根据DPI实现动态调整控件大小(三种方式)

1、QT支持高DPI(针对整个进程中所有的UI)

// main函数中
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling)

tips:(1)如果不想全局设置,可以使用下面两种方式进行单独设置。(2)如果想有的窗口使用系统高DPI缩放,有的窗口保持DPI,就需要设置该属性,并修改QT源码,增加接口,来判断某个窗口是否需要高DPI自动缩放

2、存在该头文件<QtWidgets/private/qstylehelper_p.h>

#include <QtWidgets/private/qstylehelper_p.h>qreal KStyle::dpiScaled(qreal value)
{
#ifdef Q_OS_MAC// On mac the DPI is always 72 so we should not scale itreturn value;
#elsereturn QStyleHelper::dpiScaled(value);
#endif
}

3、不存在该头文件<QtWidgets/private/qstylehelper_p.h>,自己实现

#include <QScreen>qreal KStyle::dpiScaled(qreal value)
{
#ifdef Q_OS_MAC// On mac the DPI is always 72 so we should not scale itreturn value;
#elseqreal dpi = QGuiApplication::primaryScreen()->logicalDotsPerInch(); static const qreal scale = qreal(dpi) / 96.0;return value * scale;
#endif
}

二、使用示例

ui->btnClose->setFixedHeight(dpiScaled(ui->btnClose->minimumHeight()));
http://www.lryc.cn/news/275981.html

相关文章:

  • SLB、DMZ、Nginx、Ingress、Gateway、Kibana和Grafana
  • 【已解决】Invalid bound statement (not found)
  • 汽车信息安全--芯片厂、OEM安全启动汇总(1)
  • 气膜建筑:舒适、智能、可持续
  • 【C语言】一种状态超时阻塞循环查询的办法
  • 【leetcode】力扣热门之回文链表【简单难度】
  • 【MySQL】ALL函数的巧用 以及 排序(order by)巧用 sum(条件表达式) 语法
  • Debezium发布历史49
  • 数据结构——队列(Queue)
  • uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -后端架构搭建
  • 两种方式实现mysql截取年月日
  • WPF 使用矢量字体图标
  • 编程语言的语法糖,你了解多少?
  • MySQL中FLUSH TABLES命令语法
  • 如何在小米4A刷OpenWRT系统并通过cpolar实现公网访问本地路由器
  • Spring学习之——事务控制
  • 云原生技术专题 | 解密2023年云原生的安全优化升级,告别高危漏洞、与数据泄露说“再见”(安全管控篇)
  • 如何启用Windows电脑的内置Administrator账户
  • 智慧工厂:科技与制造融合创新之路
  • SCADE—产品级安全关键系统的MBD开发套件
  • PyTorch|保存与加载自己的模型
  • javaScript:Math工具类方法
  • ffmpeg转码新技能
  • Docker学习笔记(一):Docker命令总结
  • JavaWeb——后端案例
  • 【CSS】浅学一下filter
  • Commander One for Mac:强大的双窗格文件管理器,让你的工作效率倍增!
  • leetcode09-机器人能否返回原点
  • sublim安装Autoprefixer插件
  • 虚拟机Linux硬盘扩容