我是靠谱客的博主 大力马里奥,最近开发中收集的这篇文章主要介绍pyqt5 窗口 事件监听回调,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

        • 1、简介
        • 2、功能实现
          • 1)、继承 MainWindow 类
          • 2、继承 QWidget 类

1、简介

在窗口状态发生改变时实现这些事件的捕捉
继承 MainWindow 类实现的窗体

在这里插入图片描述

继承 QWidget 实现的窗体
类似

2、功能实现

1)、继承 MainWindow 类
import sys

from PyQt5 import QtCore
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon


class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        exitAction = QAction(QIcon('exit.png'), '&Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(qApp.quit)
        self.statusBar()
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Menubar')
        self.show()
      
         # 添加 复写 窗口状态改变 函数
    def changeEvent(self, e):
        if e.type() == QtCore.QEvent.WindowStateChange:
            if self.isMinimized():
                print("窗口最小化")
            elif self.isMaximized():
                print("窗口最大化")
            elif self.isFullScreen():
                print("全屏显示")
            elif self.isActiveWindow():
                print("活动窗口")
 
    # 添加 复写 显示窗口函数
    def showEvent(self, e):
        print("窗口显示")

    def hideEvent(self, e):
        print("窗口隐藏")

    def closeEvent(self,e):
       print ("窗口关闭")

    def moveEvent(self,e):
       print ("窗口移动")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
2、继承 QWidget 类
from PyQt5 import QtCore, QtWidgets

class MyWindow(QtWidgets.QWidget):
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.resize(300, 100)
    def changeEvent(self, e):
        if e.type() == QtCore.QEvent.WindowStateChange:
            if self.isMinimized():
                print("窗口最小化")
            elif self.isMaximized():
                print("窗口最大化")
            elif self.isFullScreen():
                print("全屏显示")
            elif self.isActiveWindow():
                print("活动窗口")

    def showEvent(self, e):
        print("窗口显示")

    def hideEvent(self, e):
        print("窗口隐藏")

    def closeEvent(self,e):
       print ("窗口关闭")


    def moveEvent(self,e):
       print ("窗口移动")
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

对于窗口更多的事件介绍 比如重绘 paintEvent(self,event) 、尺寸重置 paintEvent(self,event) 用法类似。

最后

以上就是大力马里奥为你收集整理的pyqt5 窗口 事件监听回调的全部内容,希望文章能够帮你解决pyqt5 窗口 事件监听回调所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部