【问题标题】:Qt Designer; difficulty placing widgets in the right parentQt 设计师;难以将小部件放置在正确的父级中
【发布时间】: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(新父母)

我还没有发现任何可以准确放置新小部件的功能吗?

【问题讨论】:

    标签: qt qt-designer


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 2020-01-17
      • 1970-01-01
      相关资源
      最近更新 更多