pyqt5入门教程(六)

作者: 肥宅_Sean | 来源:发表于2018-02-17 16:09 被阅读40次

关键重载函数:def closeEvent(self, event)
这要重载了这个函数,就可以实现关闭的事件处理情况

    def closeEvent(self, event):

        reply = QMessageBox.question(self, 'Message',
                                     "Are you sure to quit?", QMessageBox.Yes |
                                     QMessageBox.No, QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

我们把这个函数加到之前的那个类当中,就有了下面的效果了


这里写图片描述

注意到那No被设置了默认聚焦,这是在那个QmessageBox中重载实现的

 def question(self, QWidget, p_str, p_str_1, buttons,QMessageBox_StandardButtons=None,QMessageBox_StandardButton=None, *args, **kwargs): 

这是那个函数的动态函数原型。
QWidget:父组件
p_str:标题
p_str_1:具体信息
buttons:选择的button
最后一个就是默认聚焦的button

具体代码在下面:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QToolTip, QPushButton, QMessageBox
from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtCore import QCoreApplication


class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.setUI()

    def setUI(self):
        QToolTip.setFont(QFont('SansSerif', 10))
        self.resize(500, 150)
        self.move(100, 100)
        self.setWindowIcon(QIcon('./Title.ico'))
        self.setWindowTitle("Hello world")

        self.setToolTip("<b>this is widget</b>")

        btn = QPushButton("quit Button", self)  # self类似于C++ this指针
        btn.setToolTip("This is a button will quit itself")
        btn.clicked.connect(QCoreApplication.instance().quit)
        btn.resize(btn.sizeHint())
        btn.move(0, 0)

        self.show()

    def closeEvent(self, event):

        reply = QMessageBox.question(self, 'Message',
                                     "Are you sure to quit?", QMessageBox.Yes |
                                     QMessageBox.No, QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()


if __name__ == '__main__':
    app = QApplication(sys.argv)

    ex = Example()

    sys.exit(app.exec_())

相关文章

  • PYQT5(四)并结合pyqt自带designer进行开发

    QWQ这是很基础的pyqt5入门教程。 pyqt5自带的designer比较奇葩,用来绘制界面很简单,但是生成脚本...

  • pyqt5入门教程(六)

    关键重载函数:def closeEvent(self, event)这要重载了这个函数,就可以实现关闭的事件处理情...

  • pyqt5入门教程

    麦子学院---《使用pyqt开发 windows gui程序及打包》学习笔记 1. python GUI框架简介,...

  • pyqt5入门教程(七)

    设置居中函数,设置好这个居中函数,在初始化整个控件的时候,调用这个函数,就可以使得整体的框架的位置在一开始就被设置...

  • pyqt5入门教程(一)

    pyqt入门 根据pyqt5的文档改写的,加入了注释吧 虽然,用designer会更加方便,但是过于依赖desig...

  • pyqt5入门教程(二)

    添加Icon(图标) 在网上下载一些ICO格式的图标 其实一般我们使用的png格式的图片也是可以的~左上角的图标变...

  • pyqt5入门教程(五)

    点击这个button就会将整个程序给退出出去 btn.clicked.connect(QCoreApplicati...

  • pyqt5入门教程(四)

    设置 ToolTip,只要将鼠标停在对应的控件几秒不动,就会显现一个帮助提示 运行结果所在这里写图片描述 后记:Q...

  • pyqt5入门教程(三)

    其实可以通过前面的代码看出,在main函数部分,其实只是做了三件事 创建应用 创建图形界面 将应用退出信号 因此,...

  • python使用PyQt5的简单方法

    一:安装PyQt5 pip install pyqt5 二:PyQt5简单使用 1:使用PyQt5创建一个简单窗口...

网友评论

    本文标题:pyqt5入门教程(六)

    本文链接:https://www.haomeiwen.com/subject/dbnmtftx.html