pyqt5でウィンドウをスクリーンの中央に表示したい
pyqt5でウィンドウをスクリーンの中央に表示したいです。例えば次のコードで表示されるウィンドウがスクリーン中央に表示されるためにはどうすればよいのでしょうか。
import sys
from PyQt5.QtWidgets import (QWidget,
QVBoxLayout, QHBoxLayout, QApplication, QPushButton, QLabel, QLineEdit)
from PyQt5 import*
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
font=QtGui.QFont("00コミック7",20)
# ラベル名の設定
lbl1 = QLabel('1行目')
lbl1.setFont(font)
lbl2 = QLabel('2行目')
lbl2.setFont(font)
lbl3 = QLabel('3行目')
lbl3.setFont(font)
self.edit1=QLineEdit()
self.edit1.setFont(font)
self.edit2=QLineEdit()
self.edit2.setFont(font)
self.edit3=QLineEdit()
self.edit3.setFont(font)
btn1=QPushButton("1")
btn1.setFont(font)
btn1.setStyleSheet("background-color: #ffcf54")
btn2=QPushButton("2")
btn2.setFont(font)
btn2.setStyleSheet("background-color: #ffcf54")
btn3=QPushButton("3")
btn3.setFont(font)
btn3.setStyleSheet("background-color: #ffcf54")
firstlayout=QHBoxLayout()
firstlayout.addWidget(lbl1)
firstlayout.addWidget(self.edit1)
firstlayout.addWidget(btn1)
secondlayout=QHBoxLayout()
secondlayout.addWidget(lbl2)
secondlayout.addWidget(self.edit2)
secondlayout.addWidget(btn2)
thirdlayout=QHBoxLayout()
thirdlayout.addWidget(lbl3)
thirdlayout.addWidget(self.edit3)
thirdlayout.addWidget(btn3)
layout=QVBoxLayout()
layout.addLayout(firstlayout)
layout.addLayout(secondlayout)
layout.addLayout(thirdlayout)
self.setLayout(layout)
self.setWindowTitle('レイアウト')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
ちなみにこのコードを実行すると次のようなウィンドウが表示されます。
しかし、このままではスクリーンの若干上の方に表示されます。また、もっと大きなジオメトリを作成すると、画面左側にまだ余裕があるのに、画面右側にはみ出したりします。