如何叠加小部件?

12
我想创建一些小部件并将它们放在布局之外,而是在其他小部件的几何形状发生变化时调整它们的大小和位置。
就像屏幕截图上的按钮一样。

alt text

3个回答

12

您只需要创建一个 QPushButton (或任何 QWidget),指定其父 QWidget,然后显示它即可。

不要将它添加到父布局中,否则您将无法按照您的意愿移动它。

不要忘记指定它的父级,否则它将被显示为独立的 QWidget。

在这些条件下,您的 QPushButton 将被视为父 QWidget 的子元素,但不是父布局的成员。因此,它将是一个“浮动”子元素,您必须在调整父 QWidget 大小时管理它的行为。

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


为了实现屏幕截图中看到的右对齐,可以重新实现父窗口小部件的resizeEvent()函数,并在其中手动移动子小部件。 - Frank Osterfeld

3
如果它们是没有布局的窗口小部件的子代,我认为您应该能够随意移动它们。

2

我需要一个类似这样的小部件用于我正在开发的项目,所以我采纳了Patrice的建议并编写了此代码(Python)PyQt4 Widget Overlay


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接