我有一个主要 QWidget
,其中包含三个推广的小部件: A 派生自QGraphicsView
, B 派生来自QLabel
的{{1}}和 C 。来自QWidget
在应用程序退出时,我需要在 A 之前销毁 B 和 C ,但我发现自 A 以来, B 和 C 父级会自动设置为 Main , A 会先被销毁。这可以解决,将 A 设置为 B 和 C 父级。
生成的 ui_ProjectName.h 文件包含:
a = new A(Main);
b = new B(Main);
c = new C(Main);
但它应该是:
a = new A(Main);
b = new B(a);
c = new C(a);
有没有办法直接从Qt Designer执行此操作以生成正确的 ui_ProjectName.h ?
答案 0 :(得分:0)
如果您的3个小部件不属于同一布局,您可以手动编辑.ui
文件,为小部件指定正确的父级。要使窗口小部件A
成为窗口小部件B
的父级,您只需剪切属于<widget>
的{{1}}标记并将其粘贴到 {{1}内} B
标记。像这样:
A
请注意,QtCreator有合法的方式来编辑<widget>
文件:在<widget class="QWidget" name="A">
<widget class="QWidget" name="B">
...
</widget>
</widget>
文件上单击鼠标右键,然后选择“打开方式 - &gt;纯文本编辑器”。
但是要注意:如果你拥有它们,这将破坏布局规则。 如果你不想打破这种情况的布局,你可以尝试通过代码在运行时重新分配父:
.ui
在这种情况下,.ui
文件中生成的代码实际上并不重要 - 您将重置它。