-1

我怎样才能给一个小部件一个固定的位置?像这样我可以“附加”/把它放在窗口的底部,它会一直在那里;即使窗口扩大。我找不到任何有用的方法,而且我想显然,没有任何明显的东西有效(resize(),setGeometry()等)。有什么帮助吗?

4

2 回答 2

2

我假设“固定位置”是指相对于窗口边缘之一的位置。这就是你的第二句话所暗示的。这就是我要回答的问题。

使用具有拉伸和间距的布局管理器。这是一个将小部件“w”附加到窗口“win”底部的简单示例。此代码通常由窗口的构造函数调用(或进入)。

lay = QVBoxLayout(win)
lay.addStretch(1)
lay.addWidget(w)

BoxLayout 使“w”粘在窗口底部并在调整窗口大小时保持在该位置。

于 2013-09-17T22:29:09.980 回答
-1

您必须重新实现父窗口的 resizeEvent 函数,这是使小部件“附加”到窗口底部的代码:

def resizeEvent(self, event):
    #widget.move(x, y)
    self.bottom_widget.move(0, self.height() - self.bottom_widget.height())
    #if you want the widgets width equal to window width:
    self.bottom_widget.setWidth(self.width())

每当调整窗口大小时,都会调用此函数并将小部件移动到窗口底部。这是一种绝对定位方法,但您始终可以使用 QSpacerItem 将您的小部件推到底部。

于 2013-09-17T22:21:35.177 回答