Hor*_*ter 15 c++ qt qt-creator qt-designer qt5.6
今天我将我的应用程序从Qt5.5移植到Qt5.6RC.在我的高dpi屏幕上运行它,小部件看起来很小.读完这个并设置QT_AUTO_SCREEN_SCALE_FACTOR to "1"至少它再次可用.
不过他们说:
从长远来看,应用程序应该适应未经修改的运行:
1)始终使用QPainter绘图API的qreal版本.
2)调整与屏幕大小相关的窗口和对话框.
3)用字体度量或屏幕大小计算的值替换布局和绘图代码中的硬编码大小.
并非所有样式表属性都支持em("..来自字体指标").不知道我如何在样式表中使用"屏幕尺寸"相对.此外,Qt Designer仅支持px许多地方,如下所示.
考虑到我不想放弃设计师和样式表,我有什么选择来创建真正的Qt雇佣应用程序?
相关(但没有回答我的问题)
1em在Qt世界中意味着什么:Qt qss中的大小"1em"是什么意思,如果没有字体大小的话?小智 4
如果您确实热衷于使用设计器,也许可以考虑以编程方式更新样式表。这是我在必须跨多个平台部署的应用程序中实现的一个非常黑客的修复。这意味着px对一切都使用测量,因为它是唯一得到广泛支持的测量。
您可能知道,Qt 字体不支持“屏幕大小”相对em单位:
来自 Qt5 文档:https://doc.qt.io/qt-5/stylesheet-reference.html Qt 仅限于 pt 和 px 字体大小,任何其他大小必须以 px、em 或 ex 为单位。
无论您开发了哪种显示器及其规格,您满意的 UI 都将成为您的应用程序的标准。在 Windows 的构造函数中,您可以计算一个比例因子,即新设备的 DPI 除以您知道应用程序看起来不错的“标准 DPI”。从那里,您只需要将小部件/字体样式表乘以该比例因子即可。这可能听起来很麻烦(确实如此),但这意味着迭代 ui->myWidget->getStyleSheet() 返回的 QString 并缩放子字符串之前的所有数字实例px。
这对我来说在放大/缩小字体和小部件尺寸方面很有用,但显然增加了开销。我也非常喜欢使用 Designer 的简单性,但据我所知,在 Designer 中创建可扩展的 UI 仍然很困难。改用以编程方式设计 UI 最终取代了我对应用程序的黑客修复。
注意:注意您使用的字体也很重要。如果您的字体不是系统支持的字体,则该px值将出现意外行为,因为默认字体将替换它。
| 归档时间: |
|
| 查看次数: |
1408 次 |
| 最近记录: |