PyQt5初始化主窗口位于屏幕中间

阅读这篇的前提是已经默认了解了PyQt5的基础框架(超链接点击跳转)。我们进一步介绍如何将初始化的主界面放置在屏幕中央。代码如下:

# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QDesktopWidget, QApplication, QMainWindow


class WinForm(QMainWindow):
    def __init__(self, parent=None):
        super(WinForm, self).__init__(parent)
        self.setWindowTitle('主窗口初始化位于屏幕中间举例')
        self.resize(800, 640)
        self.setCenter()

    def setCenter(self):
        screen = QDesktopWidget().screenGeometry()
        size = self.geometry()
        self.move(int((screen.width() - size.width()) / 2), int((screen.height() - size.height()) / 2))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = WinForm()
    win.show()
    sys.exit(app.exec_())

各个语句的解释:
QDesktopWidget() :一个描述屏幕的类,这个类需要从PyQt5.QtWidgets中导入。
QDesktopWidget().screenGeometry():获取屏幕的尺寸信息,也可以理解为屏幕的分辨率信息。获取到的屏幕信息有两个属性,一个是width对应屏幕的长度,一个是height对应屏幕的宽度。
size = self.geometry():获取控件的尺寸信息,这里的控件指的就是我们已经创建的QMainWindow对象。
self.move(int((screen.width() - size.width()) / 2), int((screen.height() - size.height()) / 2)):将QMainWindow初始化时放置于屏幕的中心位置。

PyQt5初始化主窗口位于屏幕中间_第1张图片
我们知道设定控件位置的时候,控件位置的摆放是根据左上角点的位置来确定的,因此我们可以想象self.move(int((screen.width() - size.width()) / 2), int((screen.height() - size.height()) / 2))相当于将屏幕切了一半,然后分别用屏幕总长、宽的一半减去控件长、宽的一半,这样就得到了控件左上角点应该被摆放的位置的坐标。

码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~

你可能感兴趣的:(PyQt5,python,PyQt5,GUI)