gpt4 book ai didi

c++ - 样式表/Qt Designer 是否支持高 dpi 屏幕?

转载 作者:IT老高 更新时间:2023-10-28 22:41:43 27 4
gpt4 key购买 nike

今天我已将我的应用程序从 Qt5.5 移植到 Qt5.6RC。在我的高 dpi 屏幕上运行它,小部件看起来很小。看完this并将 QT_AUTO_SCREEN_SCALE_FACTOR 设置为“1” 至少它可以再次使用。

但是 they say :

In the longer term, the application should be adapted to run unmodified:

1) Always use the qreal versions of the QPainter drawing API.
2) Size windows and dialogs in relation to the screen size.
3) Replace hard-coded sizes in layouts and drawing code by values calculated from font metrics or screen size.

并非所有样式表属性都支持 em(“.. from font metrics”)。不知道我将如何在样式表中使用相对的“屏幕大小”。另外Qt Designer在很多地方只支持px,如下图。

icon size

考虑到我不想放弃设计器和样式表,我有哪些选择来创建真正的 Qt 招聘应用程序?


相关(但没有回答我的问题)

最佳答案

如果您真的喜欢使用 Designer,不妨考虑以编程方式更新样式表。这是我在必须跨多个平台部署的应用程序中实现的一个非常 hacky 的修复程序。这意味着对所有内容都使用 px 度量,因为它是唯一被广泛支持的度量。

您可能知道,Qt 字体不支持“屏幕大小”相对 em 单位:

From Qt5 documentation: https://doc.qt.io/qt-5/stylesheet-reference.html Qt is limited to font sizes in pt and px and any other size must be in px, em or ex.

您开发出满意的 UI 的显示器及其规范将成为您的应用程序的标准。在窗口的构造函数中,您可以计算一个比例因子,即新设备的 DPI 除以您知道您的应用程序看起来不错的“标准 DPI”。从那里,您只需将您的小部件/字体样式表乘以该比例因子。这听起来可能很麻烦(而且确实如此),但这意味着遍历 ui->myWidget->getStyleSheet() 返回的 QString 并缩放 px 子字符串之前的所有数字实例。

这对我来说可以放大/缩小字体和小部件大小,但显然会增加开销。我也很喜欢使用 Designer 的简单性,但是,afaik,在 Designer 中创建可扩展的 UI 仍然很困难。切换到以编程方式设计 UI 最终取代了我对应用程序的 hacky 修复。

注意:注意您使用的字体也很重要。如果您的字体不是系统支持的字体,则 px 值将出现意外行为,因为默认字体将替换它。

关于c++ - 样式表/Qt Designer 是否支持高 dpi 屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35641742/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com