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