- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的软件在 Windows 7 及更高版本上运行,并使用 Qt 5.8 以 100% dpi 缩放(控制面板 > 放大或缩小文本和其他项目)开发。
当我的用户将他们的 dpi 缩放比例设置为 150% 时,所有文本和布局间距的大小都会增加,正如他们应该的那样,但其他一切都没有受到影响。
结果是一个损坏的 GUI,文本对于其他元素来说太大了。
我已经尽可能多地进行了研究,“简单的修复”是设置环境变量 QT_AUTO_SCREEN_SCALE_FACTOR
为真。qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1");
是我在 main.cpp 中作为第一行添加的内容。
完全没有任何影响。唯一有任何影响的是 qputenv("QT_SCALE_FACTOR", "1.5");
但这绝对不是我想要的。
我如何告诉我的其余软件进行相应的扩展?
谢谢你的时间!
编辑:
这是我的错误 https://bugreports.qt.io/browse/QTBUG-55654
最佳答案
答案可能有点晚了,但可能会有所帮助。
这是对我有用的东西。
您可以通过在 QApplication 的实例化时提供命令行选项来手动设置 DPIawareness。
官方文档在这里https://doc.qt.io/qt-5/highdpi.html (部分 DPI 意识)。
根据文档,您可以将应用程序设置为 DPI Unaware(因此它会自动缩放但显示会模糊),或者设置为 System DPI Aware 或 Per-Monitor Aware。
这是 QApplication 实例化以强制 DPI Unaware(并具有 UI 位图缩放)的最小示例代码,选择 0 以外的其他值以正确启用高 DPI:
int main()
{
int argc = 3;
char*argv[] = {(char*)"Appname", (char*)"--platform", (char*)"windows:dpiawareness=0";
(void) new QApplication(argc, argv);
}
关于c++ - QT_AUTO_SCREEN_SCALE_FACTOR 没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47587874/
我的软件在 Windows 7 及更高版本上运行,并使用 Qt 5.8 以 100% dpi 缩放(控制面板 > 放大或缩小文本和其他项目)开发。 当我的用户将他们的 dpi 缩放比例设置为 150%
我可以设置QT_AUTO_SCREEN_SCALE_FACTOR 1 behavior通过 API 调用而不是通过环境变量?我想检测我的 Qt 应用程序是否在高 dpi 屏幕上运行,然后相应地设置缩放
我是一名优秀的程序员,十分优秀!