0
我在没有使用布局的情况下将窗口部件添加到父窗口小部件中(因为我正在使用与布局尝试执行操作相冲突的动画)。没有布局的父窗口小部件上的中心窗口小部件
我想了解我需要做些什么来手动对齐子对象的父对象(即使父对象对象被调整大小时,它也会水平和垂直居中)。
我试过自己计算位置并使用QWidget.move()
和QWidget.setGeometry()
,但都没有正常工作,因为我似乎无法获得正确的父宽度和高度。
这里是我想要实现一个简单的例子:
import sys
from PySide.QtGui import *
from PySide.QtCore import *
class Test(QWidget):
def __init__(self, parent=None):
super(Test, self).__init__(parent)
def sizeHint(self):
return QSize(500, 500)
def addPage(self, widget):
widget.setParent(self)
# THIS SEEMS UNPREDICTABLE:
widget.move(self.sizeHint().width()/2, self.sizeHint().height()/2)
if __name__ == '__main__':
app = QApplication(sys.argv)
mainW = Test()
childW = QPushButton('centre me please')
mainW.addPage(childW)
mainW.show()
sys.exit(app.exec_())
和经常,发布答案后立即浮现在脑海。我需要使用以下行来实现resizeEvent以获取我之后的内容: widget.move((event.size().width() - widget.sizeHint()。width())/ 2,(event.size ().height() - widget.sizeHint()。height())/ 2) –
哎呀我没看过:) – Benjamin