Qt Designer添加一个几何标记,其中包含小部件的默认大小(绝对单位(像素))。
这真的很烦人,因为如果您在4k监视器上编辑ui
文件,则所有ui
(默认情况下)将在较低的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>
答案 0 :(得分:6)
我可以在Qt Designer中删除几何标记,如下所示:
这会自动调整表单大小 - 但手动调整大小不会恢复几何标记。但是,如果表单有菜单栏,它还会为其添加几何标记。因此,在Object Inspector中选择菜单栏,然后重复上面的步骤2和3。完成后,我得到了这个输出:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar"/>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
添加其他小部件/菜单/布局并调整表单大小后,几何标记永远不会再出现。这都是在Linux上使用Qt Designer 5.10.1进行测试的。
答案 1 :(得分:1)
我没有一个解决方案来阻止Designer写这个,我经常发现只需通过代码恢复已经完成的工作就更简单了。
在这种情况下,我建议在主窗口的构造函数末尾添加对setSize(sizeHint())
的调用。