python qt5 数据改变 触发信号_五、Pyqt5事件、信号和槽

PyQt中提供了两种针对事件处理的机制:一种是事件,另一种则是信号和槽。

一、事件

事件处理在PyQt中是比较底层的,常用的事件有键盘事件、鼠标事件、拖放事件、滚轮事件、定时事件、焦点事件、进入和离开事件(光标移入控件或者移出),移动事件(窗口位置变化),显示和隐藏事件,窗口事件(窗口是否为当前窗口)、以及常见的Qt事件:Socket事件、剪贴板事件、文字改变事件,布局改变事件等。

针对这些事件,PyQt提供了多种事件处理和过滤方法,其中最常用的有两种:

(1)重写事件具体的函数(例如:mousePressEvent()/keyPressEvent()....)

(2)重新实现QObject.event()一般用在PyQt没有提供该事件的处理函数的情况下,即添加一个新的事件;

1.1 重写事件

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 importsys,os2 from PyQt5.QtCore importQt3 from PyQt5.QtWidgets importQWidget, QApplication,QMessageBox4 from PyQt5.QtGui importQIcon5

6 path = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))7

8 classMyWindow(QWidget):9

10 def __init__(self):11 super(MyWindow, self).__init__()12 self.initUI()13

14 definitUI(self):15 self.setGeometry(300, 300, 300, 250)16 self.setWindowTitle('重写事件示例')17 self.setWindowIcon(QIcon(r'%s\4.图标素材\chuan.ico' %path))18

19 defcloseEvent(self, QCloseEvent):20 '''

21 重写closeEvent方法,关闭窗口时触发22 '''

23 reply = QMessageBox.question(self,'本程序',"是否要退出程序?",24 QMessageBox.Yes |QMessageBox.No,25 QMessageBox.No)26 if reply ==QMessageBox.Yes:27 QCloseEvent.accept()28 else:29 QCloseEvent.ignore()30</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值