问题 Qt设计师;难以将小部件放在正确的父级中


使用Qt Designer我已经相互制作了几个QFrame,每个都有一个水平布局。他们的样式表预测他们应该没有边距或填充。这意味着在Qt Designers视图和最终结果中,QFrame之间没有空间。

使用拖放我可以将小部件放入窗口,它会显示一条蓝色线条(在布局中)。但是,不可能将另一个QFrame添加到我看不到的QFrame父级(因此可以继续)。右侧面板中还有一棵树,但放在父级上会让它自动进入其中一个孩子......

例如,我有这个设置:

QMainWindow的
 -  QWidget
   -  QFrame(父母)
     -  QFrame(儿童)
     -  QFrame(儿童)

无论我尝试什么,添加一个新框架给了我:

QMainWindow的
 -  QWidget
   -  QFrame(父母)
     -  QFrame(儿童)
     -  QFrame(儿童)
     -  QFrame(新孩子)

但我真的想要:

QMainWindow的
 -  QWidget
   -  QFrame(父母)
     -  QFrame(儿童)
     -  QFrame(儿童)
   -  QFrame(新父母)

是否有任何我没有发现的功能来准确放置新的小部件?


6216
2017-09-21 19:48


起源



答案:


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

所以考虑到你的布局:

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

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


5
2017-09-21 20:00



改变布局,添加框架和小部件绝对是一件痛苦的事。根据您要更改的内容,通常需要打破布局。作为一个技巧,有时我使用设计师来创建临时表单/小部件。这可以像剪贴板一样来回切割和粘贴组件。 - Arnold Spence
这是有效的,谢谢。它以这种方式撤消QWidget的布局,我必须重新配置,或者这是不可避免的? - Taco de Wolff
@Arnold,是的,效果很好,谢谢! - Taco de Wolff


答案:


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

所以考虑到你的布局:

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

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


5
2017-09-21 20:00



改变布局,添加框架和小部件绝对是一件痛苦的事。根据您要更改的内容,通常需要打破布局。作为一个技巧,有时我使用设计师来创建临时表单/小部件。这可以像剪贴板一样来回切割和粘贴组件。 - Arnold Spence
这是有效的,谢谢。它以这种方式撤消QWidget的布局,我必须重新配置,或者这是不可避免的? - Taco de Wolff
@Arnold,是的,效果很好,谢谢! - Taco de Wolff


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


5
2017-09-23 20:31



我把布局放在彼此里面有这个问题,所以另一个答案没有用。谢谢你! - Matthew Read
Bah或只是编辑XML。我对设计师感到非常失望。 - Nils


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

最简单的方法就是添加 Layout 到形式。然后从中拖动您的项目 Toolbox 在布局上 Object Inspecter Window。 这会将项目添加到 Layout

如果这适用于较旧版本的Qt Creator的旧版本,则为未知。


0
2018-06-01 10:10