//方法1:在main函数的最前面加上下面这句 5.6版本才开始有这个函数
#if (QT_VERSION > QT_VERSION_CHECK(5,6,0))
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
//开启高缩放支持以后图片可能发虚还要开启下面这个属性
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
#endif
//方法2:在可执行文件同目录下新建文件 qt.conf 填入下面内容
[Platforms]
WindowsArguments = dpiawareness=0
//下面这行用来解决Qt高DPI下文字显示有锯齿的问题
WindowsArguments = fontengine=freetype
//方法3:在main函数最前面设置Qt内部的环境变量
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1.5");
1 2 3 4 5 6 7 8 9
139. QTabWidget选项卡有个自动生成按钮切换选项卡的机制,有时候不想看到这个烦人的切换按钮,
可以设置usesScrollButtons为假,其实QTabWidget的usesScrollButtons属性最终是应用到
QTabWidget的QTabBar对象上,所以只要设置全局的QTabBar的这个属性关闭即可。为啥要设置
全局的呢,因为如果只是对QTabWidget设置了该属性,而在QMainWindow窗体中QDockWidget
合并自动形成的选项卡只有QTabBar对象导致依然是有切换按钮。
140. QMainWindow的分割线默认尺寸比较大,有时候想设置小一点或者不想要,最开始的时候以为是
QSplitter,打印所有子元素找遍了也没找到影子,最后发现样式表中有对应设置的内容。
15:141-150
141. QImage支持xpm图标,查看Qt内置的QStyle风格的代码中可以发现大量的xpm图标定义,通过代
码的形式来产生图标,哇咔咔好牛逼。
//方法4:新版本的Qt比如Qt5.14修正了对高分屏的处理支持不是整数的缩放
qputenv("QT_ENABLE_HIGHDPI_SCALING", "1");
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorR
oundingPolicy::PassThrough);
//禁用缩放
//测试发现AA_Use96Dpi属性在Qt5.9以上版本完全正常,以下版本比如5.7有部分控件在175%缩放不
正常比如QTextEdit,需要外层套个widget才行。
#if (QT_VERSION >= QT_VERSION_CHECK(5,0,0))
QApplication::setAttribute(Qt::AA_Use96Dpi);
#endif
#if (QT_VERSION >= QT_VERSION_CHECK(5,14,0))
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactor
RoundingPolicy::Floor);
#endif
QT 对高分屏不同缩放比例的自适应处理方法(12)
版权声明:本文为xb531501826原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。