Qt 设计师;难以将小部件放置在正确的父级中
Posted
技术标签:
【中文标题】Qt 设计师;难以将小部件放置在正确的父级中【英文标题】:Qt Designer; difficulty placing widgets in the right parent 【发布时间】:2011-04-15 09:37:42 【问题描述】:使用 Qt 设计器,我在彼此中制作了几个 QFrame,每个都有一个水平布局。他们的样式表断言他们不应该有边距或填充。这意味着在 Qt Designers 视图以及最终结果中,QFrame 之间看不到任何空间。
使用拖放我可以将小部件放入窗口中,它会在将要放置的位置(在布局中)显示一条蓝线。但是,不可能将另一个 QFrame 添加到我看不到的 QFrame 父级(因此放弃)。右侧面板中还有一棵树,但放在父级上会使其自动进入其中一个子级...
例如,我有这个设置:
QMainWindow - QWidget - QFrame(父级) - QFrame(儿童) - QFrame(儿童)添加一个新框架,无论我尝试什么,都会给我:
QMainWindow - QWidget - QFrame(父级) - QFrame(儿童) - QFrame(儿童) - QFrame(新孩子)但我真的很想要:
QMainWindow - QWidget - QFrame(父级) - QFrame(儿童) - QFrame(儿童) - QFrame(新父母)我还没有发现任何可以准确放置新小部件的功能吗?
【问题讨论】:
【参考方案1】:您可以使用 Object Inspector 窗口,但您似乎无法粘贴到具有锁定布局的 QFrame 中。
所以考虑到你的布局:
QMainWindow
- QWidget
- QFrame (A)
- QFrame (B)
- QFrame (C)
- QFrame (D)
在 Object Inspector 窗口中选择 QFrame D 并剪切它,右键单击 QWidget 并破坏布局 (ctrl-0),然后粘贴。然后重新应用布局。
【讨论】:
更改布局以及添加框架和小部件肯定会很痛苦。根据您要更改的内容,通常需要打破布局。作为一个技巧,有时我使用设计器来创建一个临时表单/小部件。这可以像剪贴板一样来回剪切和粘贴组件组。 这是可行的,谢谢。它确实以这种方式撤消了 QWidget 的布局,我必须重新配置,还是这是不可避免的?【参考方案2】:我使用的一种解决方法是选择要添加到的小部件,为该小部件的布局添加边距,拖放小部件,然后再次删除边距。这样,至少我在正确的小部件中得到了它。
【讨论】:
我在将布局相互放置时遇到了这个问题,所以另一个答案不起作用。谢谢! 呸,或者只是编辑 XML。我对设计师真的很失望。【参考方案3】:在 Qt Creator 4.3 中,我还发现很难将项目拖到还没有项目的布局中。
让它工作的最简单方法是将Layout
添加到表单中。然后将您的项目从Toolbox
拖到Object Inspecter Window
中的布局上。
这会将项目添加到Layout
。
未知这是否适用于旧版本的 Qt Creator。
【讨论】:
以上是关于Qt 设计师;难以将小部件放置在正确的父级中的主要内容,如果未能解决你的问题,请参考以下文章