Qt设计师;在正确的父级中放置小部件有困难

Qt设计师;在正确的父级中放置小部件有困难,qt,qt-designer,Qt,Qt Designer,使用Qt设计器,我已经在彼此之间制作了两个qframe,每个qframe都有一个水平布局。它们的样式表断言它们不应该有边距或填充。这意味着在Qt Designers视图以及最终结果中,Qframe之间看不到任何空间 使用拖放,我可以将小部件放置到窗口中,它会显示一条蓝线,显示它将被放置的位置(在布局中)。然而,不可能向我看不到的QFrame父级添加另一个QFrame(因此,请访问)。右侧面板中也有一棵树,但如果将其放在父节点上,它会自动进入其中一个子节点 例如,我有以下设置: QMainWind

使用Qt设计器,我已经在彼此之间制作了两个qframe,每个qframe都有一个水平布局。它们的样式表断言它们不应该有边距或填充。这意味着在Qt Designers视图以及最终结果中,Qframe之间看不到任何空间

使用拖放,我可以将小部件放置到窗口中,它会显示一条蓝线,显示它将被放置的位置(在布局中)。然而,不可能向我看不到的QFrame父级添加另一个QFrame(因此,请访问)。右侧面板中也有一棵树,但如果将其放在父节点上,它会自动进入其中一个子节点

例如,我有以下设置:

QMainWindow - QWidget - QFrame (parent) - QFrame (child) - QFrame (child) QMainWindow -QWidget -QFrame(父级) -QFrame(儿童) -QFrame(儿童) 添加新框架,无论我尝试什么,都会让我:

QMainWindow - QWidget - QFrame (parent) - QFrame (child) - QFrame (child) - QFrame (new child) QMainWindow -QWidget -QFrame(父级) -QFrame(儿童) -QFrame(儿童) -QFrame(新生儿) 但我真的想:

QMainWindow - QWidget - QFrame (parent) - QFrame (child) - QFrame (child) - QFrame (new parent) QMainWindow -QWidget -QFrame(父级) -QFrame(儿童) -QFrame(儿童) -QFrame(新父级)
是否有任何功能我还没有发现,以准确地放置新的小部件?

您可以使用“对象检查器”窗口,但您似乎无法粘贴到具有锁定布局的QFrame中

因此,考虑到您的布局:

QMainWindow
- QWidget
  - QFrame (A)
    - QFrame (B)
    - QFrame (C)
    - QFrame (D)

在Object Inspector窗口中选择QFrame D并剪切它,右键单击QWidget并打断布局(ctrl-0),然后粘贴。然后重新应用布局。

我使用的一种解决方法是选择要添加到的小部件,向该小部件的布局添加边距,拖放小部件,然后再次删除边距。这样,至少我在正确的小部件中得到了它。

在Qt Creator 4.3中,我还发现很难将一个项目拖动到一个还没有项目的布局中

最简单的方法是将
布局添加到表单中。然后将项目从
工具箱
拖到
对象检查器窗口
中的布局上。 这将把项目添加到
布局中


未知这是否适用于较旧版本的Qt Creator。

更改布局以及添加框架和小部件肯定会很痛苦。根据您试图更改的内容,通常需要打破布局。作为一种技巧,有时我使用designer创建临时表单/小部件。这可以像剪贴板一样来回剪切和粘贴组件组。这很有效,谢谢。它确实会以这种方式撤销QWidget的布局,我必须重新配置,或者这是不可避免的?我在将布局放置在彼此内部时遇到了这个问题,所以另一个答案不起作用。谢谢你!或者只是编辑XML。我真的对设计师很失望。