レイアウトを使用せずにウィジェットを親ウィジェットに追加しています(レイアウトが実行しようとしていることと競合するアニメーションを使用しているため)。
子ウィジェットをその親に手動で位置合わせするために何をする必要があるかを理解しようとしています(親ウィジェットのサイズが変更されている場合でも、水平方向と垂直方向に中央に配置します)。
自分で位置を計算してandを使ってみまし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_() )