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