1

我在 QMdiSubWindow 派生中的定位控件有问题。我使用 QtDesigner 设计了我的窗口,它看起来像这样:QtDesigner 中的视图

当我运行应用程序时,它看起来像这样(标题栏上的按钮): 应用程序视图(mdisubwin 正常) 只有在最大化模式下才能正常:应用程序视图(mdisubwin 最大化) 但我希望它总是看起来正常。这是 .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 插件)。

4

2 回答 2

1

好吧,添加布局并没有解决问题。当然,有了一个,一切都比没有(缩放)更好,但这不是关键。问题是,我错过了文档中的一段:

构造 QMdiSubWindow 的最常见方法是调用 QMdiArea::addSubWindow() 并使用内部小部件作为参数。您也可以自己创建一个子窗口,并通过调用 setWidget() 设置一个内部小部件。

我的窗口是 QMdiSubWindow 的子类,但我没有在任何地方调用 setWidget() 。可以通过在调用 QMdiArea::addSubWindow() 时调用此方法来解决此问题,或者将我的窗口的基类更改为与 QMdiSubWindow 不同的东西(例如 QWidget)

所以 - 一如既往:RTFM :)

于 2015-01-14T20:48:13.957 回答
0

当您在 Qt 表单上放置多个 QWidget 时,您应该始终使用某种 QLayout,解决问题的最快方法是选择表单中的所有项目,然后单击网格布局按钮(具有 3 x 3小方块)在设计师框的顶部。

于 2015-01-13T15:25:36.467 回答