Qt 和高 dpi 屏幕

Posted

技术标签:

【中文标题】Qt 和高 dpi 屏幕【英文标题】:Qt and high dpi screens 【发布时间】:2015-12-22 01:11:38 【问题描述】:

我已经阅读了几篇关于此的文章。所以我有一台戴尔 XPS 13 并将文本、应用程序和其他项目的大小更改为 200%

但我想我的问题如下。当我通过 Qt Designer 启动应用程序时,一切看起来都很好:

但是当我在 Designer 之外运行应用程序时(意味着只需双击应用程序运行它),大小就不同了:

这个工具栏实际上比屏幕截图显示的要小。所以我的问题是有一个设置我可以设置我的应用程序,所以当我在 Designer 之外启动它时,它看起来就像从 Designer 启动时一样?

【问题讨论】:

您使用的是哪个版本?我问是因为 5.6 测试版应该解决其中一些高 DPI 问题。 版本 5.5.1。 5.6 之前有解决方法吗? 【参考方案1】:

对于某些小部件类,您可以尝试使用样式表提供相对于其字体大小的大小度量:

pMyWidget->setStyleSheet(
   "MyWidget "            // What type is it? 
       "min-width: 80em;"  // If the dimension
       "min-height: 40em;" // attribute is
       "width: 160em;"     // applicable
       "height: 80em;"     // to this type.
       // margin:          // See the list
       // padding:         // of related
       // spacing:         // attributes
"");

em”指的是大写“M”字体大小AFAIR。 这里棘手的部分是实际的 MyWidget 类型是什么,如果你可以应用这样的样式表。你可以省略样式 MyWidget 中的小部件类型,但保留内容但它应该修改所有那个人正在养育的小部件。

【讨论】:

感谢您的信息。我想知道,Designer 在启动应用程序时是否会做一些事情,让它看起来与手动启动时不同? 我不这么认为。如果系统中的监视器多于应用程序启动的监视器,可能会反映在默认缩放上。 我想我的问题是,当我在构建后启动应用程序时,Designer 是如何做到的?我在我的戴尔 XPS13 笔记本电脑上运行设计器和不运行它,我注意到了差异 你可以在这里找到类似的问题***.com/questions/35714837/…

以上是关于Qt 和高 dpi 屏幕的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 上测试不同 DPI/屏幕分辨率的 Qml/Quick UI?

DPI , dot per inch

QMouseEvent::localPos() 和高 DPI 显示 (Mac Retina)

Android 屏幕适配屏幕适配基础概念 ③ ( 屏幕像素密度 DPI 与素材大小关联 | 屏幕像素密度 DPI 与 屏幕密度限定符关联 )

Android 屏幕适配屏幕适配基础概念 ③ ( 屏幕像素密度 DPI 与素材大小关联 | 屏幕像素密度 DPI 与 屏幕密度限定符关联 )

Qt的pointSize和pixelSize,qt字体大小自适应