【问题标题】:Qt Widget OverlaysQt 小部件覆盖
【发布时间】:2010-12-09 22:39:09
【问题描述】:

如何在 Qt 中叠加小部件?

我想创建一些小部件并将它们放置在布局之外,而是在其他小部件的几何形状发生变化时调整它们的大小和位置。

类似于屏幕截图上的按钮:

【问题讨论】:

    标签: language-agnostic qt layout overlay


    【解决方案1】:

    您只需要创建您的 QPushButton(或任何 QWidget),指明其父 QWidget,然后显示它。

    不要将其添加到父布局中,否则您将无法随意移动它。

    别忘了指明它的父级,否则它将显示为独立的 QWidget。

    在这些情况下,您的 QPushButton 将被视为 QWidget 的子级,而不是父级布局的成员。所以它将是一个“浮动”的孩子,你必须在调整父母 QWidget 的大小时管理它的行为。

    如果您想要所有叠加按钮的统一行为,您应该继承 QLayout 并重新定义成员 bahaviour。

    【讨论】:

    • 对于屏幕截图中看到的右对齐,可以为父小部件重新实现 resizeEvent() 并在其中手动移动子小部件。
    【解决方案2】:

    如果它们是没有布局的小部件的子级,我认为您应该可以随意移动它们。

    【讨论】:

      【解决方案3】:

      我正在从事的项目需要这样的小部件,因此我听取了 Patrice 的建议并编写了这段代码 (Python) PyQt4 Widget Overlay

      【讨论】:

        猜你喜欢
        • 2019-03-12
        • 1970-01-01
        • 2012-04-10
        • 2019-08-22
        • 2017-10-31
        • 1970-01-01
        • 1970-01-01
        • 2017-08-22
        • 1970-01-01
        相关资源
        最近更新 更多