PyQt5检测点击右上角关闭窗口

# -*- coding: utf-8 -*-


import sys
from PyQt5 import QtWidgets
from PyQt5.QtGui import QFont#QtWidgets不包含QFont必须调用QtGui

class MessageBox(QtWidgets.QWidget):#继承自父类QtWidgets.QWidget
    def __init__(self,parent = None):#parent = None代表此QWidget属于最上层的窗口,也就是MainWindows.
        QtWidgets.QWidget.__init__(self)#因为继承关系,要对父类初始化
#通过super初始化父类,__init__()函数无self,若直接QtWidgets.QWidget.__init__(self),括号里是有self的
        self.setGeometry(300, 300, 1000,1000)  # setGeometry()方法完成两个功能--设置窗口在屏幕上的位置和设置窗口本身的大小。它的前两个参数是窗口在屏幕上的x和y坐标。后两个参数是窗口本身的宽和高
        self.setWindowTitle(u'窗口')  # 设置窗体标题,本行可有可无。
        self.setToolTip(u'<b>程序</b>提示')#调用setToolTip()方法,该方法接受富文本格式的参数,css之类。
        QtWidgets.QToolTip.setFont(QFont('华文楷体', 10))#设置字体以及字体大小
#当我们关闭一个窗口时,在PyQt中就会触发一个QCloseEvent的事件,正常情况下会直接关闭这个窗口,
#但是我们不希望这样的事情发生,所以我们需要重新定义QCloseEvent,函数名称为closeEvent不可变
    def closeEvent(self,event):#函数名固定不可变
        reply=QtWidgets.QMessageBox.question(self,u'警告',u'确认退出?',QtWidgets.QMessageBox.Yes,QtWidgets.QMessageBox.No)
        #QtWidgets.QMessageBox.question(self,u'弹窗名',u'弹窗内容',选项1,选项2)
        if reply==QtWidgets.QMessageBox.Yes:
            event.accept()#关闭窗口
        else:
            event.ignore()#忽视点击X事件

app=QtWidgets.QApplication(sys.argv)
window=MessageBox()
window.show()
sys.exit(app.exec_())
PyQt5 中,可以通过信号(signal)和槽(slot)机制来实现对按钮是否被点击的实时检测。具体而言,可以使用 `clicked` 信号来检测按钮是否被点击。当按钮点击时,`clicked` 信号会被触发,此时可以通过连接一个槽函数(slot function)来实现对按钮是否被点击的实时检测。 以下是一个简单的例子,展示了如何实现对按钮是否被点击的实时检测: ```python from PyQt5.QtWidgets import QApplication, QWidget, QPushButton import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.btn = QPushButton('Click me', self) self.btn.move(50, 50) self.btn.clicked.connect(self.on_click) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Button Example') self.show() def on_click(self): print('Button clicked') if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) ``` 在这个例子中,我们创建了一个 `Example` 类,其中包含了一个按钮 `btn`。在 `initUI` 方法中,我们将按钮移动到了窗口的 (50, 50) 位置,并连接了一个槽函数 `on_click`。当按钮点击时,`on_click` 方法会被调用,它会输出一条消息 "Button clicked"。 需要注意的是,当你运行这段代码时,窗口会一直处于事件循环中,直到关闭窗口。在这个事件循环中,PyQt5 会不断地检测按钮是否被点击,如果按钮点击了,`clicked` 信号就会被触发,从而调用 `on_click` 方法。因此,这个例子实现了对按钮是否被点击的实时检测
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值