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