Qt Windows高清DPI自适应分辨率缩放
windows实际分辨率, 1920x1080
显示窗体w大小:800x600
100缩放率:
关闭Qt::AA_EnableHighDpiScaling
ui->pushButton->size() QSize(114, 30)
"\\\\.\\DISPLAY1"
devicePixelRatio 1
geometry QRect(0,0 1920x1080)
virtualGeometry QRect(0,0 1920x1080)
size QSize(1920, 1080)
virtualSize QSize(1920, 1080)
logicalDotsPerInch 96
scale: 1
开启Qt::AA_EnableHighDpiScaling
ui->pushButton->size() QSize(114, 30)
"\\\\.\\DISPLAY1"
devicePixelRatio 1
geometry QRect(0,0 1920x1080)
virtualGeometry QRect(0,0 1920x1080)
size QSize(1920, 1080)
virtualSize QSize(1920, 1080)
logicalDotsPerInch 96
scale: 1
125缩放率:
关闭Qt::AA_EnableHighDpiScaling
ui->pushButton->size() QSize(114, 30)
"\\\\.\\DISPLAY1"
devicePixelRatio 1
geometry QRect(0,0 1920x1080)
virtualGeometry QRect(0,0 1920x1080)
size QSize(1920, 1080)
virtualSize QSize(1920, 1080)
logicalDotsPerInch 120
scale: 1.25
w.size() QSize(800, 600)
开启Qt::AA_EnableHighDpiScaling
ui->pushButton->size() QSize(114, 30)
"\\\\.\\DISPLAY1"
devicePixelRatio 1
geometry QRect(0,0 1920x1080)
virtualGeometry QRect(0,0 1920x1080)
size QSize(1920, 1080)
virtualSize QSize(1920, 1080)
logicalDotsPerInch 120
scale: 1.25
w.size() QSize(800, 600)
150缩放率:
关闭Qt::AA_EnableHighDpiScaling
ui->pushButton->size() QSize(114, 30)
devicePixelRatio 1
geometry QRect(0,0 1920x1080)
virtualGeometry QRect(0,0 1920x1080)
size QSize(1920, 1080)
virtualSize QSize(1920, 1080)
logicalDotsPerInch 144
scale: 1.5
开启Qt::AA_EnableHighDpiScaling
ui->pushButton->size() QSize(114, 30)
devicePixelRatio 2
geometry QRect(0,0 960x540)
virtualGeometry QRect(0,0 960x540)
size QSize(960, 540)
virtualSize QSize(960, 540)
logicalDotsPerInch 96
scale: 1
看来会按照 devicePixelRatio 去把屏幕大小做了缩小
175缩放率:
关闭Qt::AA_EnableHighDpiScaling
ui->pushButton->size() QSize(114, 30)
"\\\\.\\DISPLAY1"
devicePixelRatio 1
geometry QRect(0,0 1920x1080)
virtualGeometry QRect(0,0 1920x1080)
size QSize(1920, 1080)
virtualSize QSize(1920, 1080)
logicalDotsPerInch 168
scale: 1.75
开启Qt::AA_EnableHighDpiScaling
ui->pushButton->size() QSize(114, 30)
"\\\\.\\DISPLAY1"
devicePixelRatio 2
geometry QRect(0,0 960x540)
virtualGeometry QRect(0,0 960x540)
size QSize(960, 540)
virtualSize QSize(960, 540)
logicalDotsPerInch 96
scale: 1
下面这种方法待尝试
使用qt.conf,在资源qrc里添加,qt/etc/qt.conf, qt.conf文件内容为:
[Platforms][Platforms]
WindowsArguments = dpiawareness=0
https://blog.csdn.net/startl/article/details/105862817
https://doc.qt.io/qt-5/highdpi.html
https://doc.qt.io/qt-6/highdpi.html
Lower-level graphics drawing (such as OpenGL code) need to be high-DPI aware, but can use cross platform Qt APIs to learn about the platform's display resolutions.
但是dpi aware情况下,控件显示异常怎么解决?
相关文章
- Qt Assistant介绍
- Qt环境搭建(Visual Studio)
- Qt5开发从入门到精通——终章、数据库基本概念(后续篇章升级为 QT常规应用开发)
- 【Qt开发】Win7 64位qt-windows-x86-msvc2015-5.6.0 DLL依赖库打包
- 【神经网络与深度学习】【Qt开发】【VS开发】从caffe-windows-visual studio2013到Qt5.7使用caffemodel进行分类的移植过程
- 【Qt开发】Qt5.7串口开发
- 【Qt开发】Qt在Windows下的三种编程环境搭建
- 【QT开发】QT在windows下的exe应用程序如何在别人的电脑上直接运行
- Qt Data Visualization Q3DSurface绘制三维曲面图实例
- Windows 下Qt Creator构建错误:-1: error: LNK1158: 无法运行“rc.exe” qt无法打开包括文件: “corecrt.h”
- QT QString向char*的转化
- 【QT】QT样式表语法
- 【QT】QT中使用Lambda表达式
- PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件外观展示类属性elideMode、documentMode、tabBarAutoHide、tabShape介绍
- PyQt(Python+Qt)学习随笔:Model/View中的枚举类 Qt.MatchFlag的取值及含义
- PyQt学习随笔:自定义Qt事件可以使用的事件类型的常量值范围
- PyQt学习随笔:Qt中Model/View中的Model Index
- QT实现自定义控件之控件代理--comboboxDelegate
- Ubuntu18.04下解决Qt出现qt.qpa.plugin:Could not load the Qt platform plugin “xcb“问题
- qt-QImage
- qt之获取鼠标在屏幕位置,在程序窗口外部位置
- Qt Quick小项目 - 登陆界面
- Qt下存储读写应用程序设置的三种方法