我在QMdiSubWindow衍生中定位控件有问题。我使用QtDesigner设计了我的窗口,它看起来像这样:
当我运行应用程序时,它看起来像这样(标题栏上的按钮): 只有在最大化模式下才能正常运行: 但我希望它总是看起来不错。 这是.ui文件的一部分:
<widget class="QPushButton" name="btnToggleEdit">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>Edit</string>
</property>
</widget>
好像它是相对于窗口角渲染的 - 无论窗口的标题栏如何...我该如何解决? 我正在使用Qt 5.2.1(和Visual Studio 2010的qt加载项)。
答案 0 :(得分:1)
好吧,添加布局并没有解决问题。当然,有一个它比没有(缩放)更好,但它不是关键的事情。问题是,我错过了文档中的一个段落:
构建QMdiSubWindow的最常用方法是调用 QMdiArea :: addSubWindow(),内部窗口小部件作为参数。您 也可以自己创建一个子窗口,并设置一个内部窗口小部件 调用setWidget()。
我的窗口是QMdiSubWindow的子类,但我没有在任何地方调用setWidget()。这个问题可以通过在调用QMdiArea :: addSubWindow()时调用此方法,或者将我的窗口的基类更改为不同的QMdiSubWindow(例如QWidget)
来解决。所以 - 一如既往:RTFM:)
答案 1 :(得分:0)
当您在Qt表单上放置多个QWidget时,您应该始终使用某种QLayout,解决问题的最快方法是选择表单中的所有项目,然后单击网格布局按钮(带有设计师盒顶部有3 x 3个小方块。