首页 > 解决方案 > 如何从 Qt Creator 的 UI 设计器中的其他两个布局之间删除 Qt 布局?

问题描述

我的 Qt 表单中有以下结构:

界面结构

怎样才能彻底去除遗嘱VerticalLayout_1,让gridLayout_8遗嘱成为直系和独生子page_4

我尝试从右键菜单中选择删除,但这VerticalLayout_1也会删除子项。我也尝试gridLayout_8在拖放界面中移动 ,但由于它是唯一的孩子verticalLayout_1,我只是无法将它移动到page_4.

标签: c++qtqt-creator

解决方案


一种可能的方法是.ui手动编辑 XML 文件以删除不需要的布局。如果您在编辑器中打开您的 XML 文件,您应该会发现如下内容:

...
<layout class="QGridLayout" name="page_4">
 <item row="0" column="0">
  <!-- below is the layout you want to remove -->
  <layout class="QVBoxLayout" name="verticalLayout_1">
   <item>
    <layout class="QGridLayout" name="gridLayout_8">
      ...
    </layout>
   </item>
  </layout>
 </item>
</layout>
...

在您的情况下,您只需要删除<layout>标记及其<item>子级,以便gridLayout_8成为 of 的直接子级<item>page_4即:

...
<layout class="QGridLayout" name="page_4">
 <item row="0" column="0">
  <layout class="QGridLayout" name="gridLayout_8">
      ...
  </layout>
 </item>
</layout>
...

之后,您可以在 QtCreator 中重新打开 XML 文件,以确保一切正常。

我不确定是否有更简单的方法可以从 QtCreator 获得相同的结果。如果您知道,请随时添加答案。


推荐阅读