#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
ZetCode PyQt5 tutorial
This program centers a window
on the screen.
Author: Jan Bodnar
Website: zetcode.com
Last edited: August 2017
"""
import sys
from PyQt5.QtWidgets import QWidget, QDesktopWidget, QApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.resize(250, 150)
self.center()
self.setWindowTitle('Center')
self.show()
def center(self):
qr = self.frameGeometry()
cp = QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
self.move(qr.topLeft())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
QtGui.QDesktopWidget
提供了用户的桌面信息,包括屏幕的大小。
text
self.center()
这个方法是调用我们下面写的,实现对话框居中的方法。
text
qr = self.frameGeometry()
获得主窗口所在的框架。
text
cp = QDesktopWidget().availableGeometry().center()
获取显示器的分辨率,然后得到屏幕中间点的位置。
text
qr.moveCenter(cp)
然后把主窗口框架的中心点放置到屏幕的中心位置。
text
self.move(qr.topLeft())
然后通过 move
函数把主窗口的左上角移动到其框架的左上角,这样就把窗口居中了。
程序预览:
内容来自Miacss'website