PyQt自定义窗口居中、移动、最大化、最小化、关闭

 

PyQt自定义窗口居中、移动、最大化、最小化、关闭_第1张图片

引入库

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

去除边框 

        self.setWindowFlags(Qt.FramelessWindowHint)

居中

    # 窗口居中
    def center(self):
        screen = QDesktopWidget().screenGeometry()
        size = self.geometry()
        self.move((screen.width() - size.width()) / 2,
                  (screen.height() - size.height()) / 2)

窗口移动

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.m_flag = True
            self.m_Position = event.globalPos() - self.pos()  # 获取鼠标相对窗口的位置
            event.accept()
            self.setCursor(QCursor(Qt.OpenHandCursor))  # 更改鼠标图标

    def mouseMoveEvent(self, QMouseEvent):
        if Qt.LeftButton and self.m_flag:
            self.move(QMouseEvent.globalPos() - self.m_Position)  # 更改窗口位置
            QMouseEvent.accept()

    def mouseReleaseEvent(self, QMouseEvent):
        self.m_flag = False
        self.setCursor(QCursor(Qt.ArrowCursor))

最大化

    @pyqtSlot()
    def on_pushButton_max_clicked(self):
        if self.isMaximized():
            self.showNormal()
        else:
            self.showMaximized()

最小化

    @pyqtSlot()
    def on_pushButton_min_clicked(self):
        self.showMinimized()

关闭

    @pyqtSlot()
    def on_pushButton_close_clicked(self):
        self.close()

 

你可能感兴趣的:(QT学习之路)