ウィンドウをセンターに配置

2014/12/14

Python2.7.6, pyQt4.11

ウィンドウをリサイズすると、自動的にセンターに配置するみたいですが、任意のタイミングで、センターにしたい場合。

# -*- coding: utf-8 -*-

import sys
from PyQt4 import QtGui

def main():

    app = QtGui.QApplication(sys.argv)
    w = QtGui.QWidget()
    w.show()

    wsize = w.size()
    center = QtGui.QDesktopWidget().availableGeometry().center()
    center.setX(center.x()-wsize.width()/2)
    center.setY(center.y()-wsize.height()/2)
    w.move(center)

    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

QWidget.show()で、サイズを自動調整するみたいなので、センターに移動するのはその後に。前にしたい場合は事前に、QWidget.adjustSize()しとけば、OK。