阅读这篇的前提是已经默认了解了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
初始化时放置于屏幕的中心位置。
我们知道设定控件位置的时候,控件位置的摆放是根据左上角点的位置来确定的,因此我们可以想象self.move(int((screen.width() - size.width()) / 2), int((screen.height() - size.height()) / 2))
相当于将屏幕切了一半,然后分别用屏幕总长、宽的一半减去控件长、宽的一半,这样就得到了控件左上角点应该被摆放的位置的坐标。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~