【发布时间】:2018-05-15 19:32:16
【问题描述】:
Qt Designer 添加一个几何标记,其中包含以绝对单位(像素)为单位的小部件的默认大小。
这真的很烦人,因为如果您在 4k 显示器上编辑 ui 文件,您的所有 uis 将(默认情况下)在较低 DPI 系统上显示大量空白。
如果我手动删除此标签,我的窗口在首次显示时具有预期的大小,但每次在 Qt Designer 中打开它们时手动编辑每个 ui 文件感觉不对。
我使用的是 Qt 5.9。
阻止 Qt Designer 添加此 XML 标记的典型方法是什么?
在example.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Example</class>
<widget class="QMainWindow" name="Example">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>970</width>
<height>1371</height>
</rect>
</property>
【问题讨论】:
-
要在 4K 显示器上“标准化”您的 UI,您可以这样做:只需将其放在 QApplication 应用程序对象初始化之前:
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); QApplication app(argc, argv);我可以以答案的形式提出,但问题更多的是关于 Designer ? -
@AlexanderVX 是的,那是不同的。问题是 Qt Designer 设置了特定于开发人员机器的 DPI/分辨率的大小提示。
-
为什么不试试
mainwindow.setGeometry(screen.width() / 4, screen.height() / 4, screen.width() / 2, screen.height() / 2);// 这样你就可以确保它与屏幕成正比。并且您可以检测到它在哪个屏幕上。 -
@AlexanderVX 一方面这不是一个坏主意,另一方面,当我从
ui文件中手动删除该行时,布局是“完美的”。
标签: c++ qt qt5 qt-designer uic