Language agnostic Qt小部件覆盖

Language agnostic Qt小部件覆盖,language-agnostic,qt,layout,overlay,Language Agnostic,Qt,Layout,Overlay,如何在Qt中覆盖小部件 我想创建一些小部件并将它们放置在布局之外,但是当其他小部件的几何结构发生变化时,我会调整它们的大小和位置 类似于屏幕截图上的按钮: 如果它们是没有布局的小部件的子部件,我认为您应该可以随意移动它们。您只需要创建QPushButton(或任何QWidget),指示其父QWidget,然后显示它 不要将其添加到父布局中,否则您将无法根据需要移动它 不要忘记指出它的父项,否则它将显示为独立的QWidget 在这些情况下,QPushButton将被视为QWidget的子级,而不是

如何在Qt中覆盖小部件

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

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


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

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

不要将其添加到父布局中,否则您将无法根据需要移动它

不要忘记指出它的父项,否则它将显示为独立的QWidget

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


如果您想要所有覆盖按钮的统一行为,您应该对成员bahaviour进行子类化和重新定义。

我正在处理的项目需要这样一个小部件,因此我听取了Patrice的建议,并编写了此代码(Python)

对于屏幕截图中显示的正确对齐方式,可以重新实现resizeEvent()对于父窗口小部件,手动将子窗口小部件移动到其中。