一、学习指导
PyQt5中事件的机制和原理比较偏向于底层逻辑的处理,但是在我们实际开发过程中也会经常使用到,比如在后面自定义按钮右键功能或者修改一些底层处理功能的时候都需要我们来重写事件实现。这节课就是通过一些简单的事件重写来实现我们想要的功能。
二、代码演示
from PyQt5.Qt import *
import sys
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('事件机制')
self.resize(600, 450)
self.move(300, 300)
class Btn(QPushButton):
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.move(60, 60)
self.resize(50, 35)
self.setText('按钮控件')
self.setStyleSheet('background-color:green')
def event(self,evt):
print(evt,'事件机制')
return super().event(evt)
def mousePressEvent(self, evt):
print("鼠标按下事件")
return super().mousePressEvent(evt)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
btn = Btn(window)
def myslot():
print('事件机制')
btn.pressed.connect(myslot)
window.show()
sys.exit(app.exec_())
上面的代码鼠标按下事件,在这之前需要继承原有的功能,否则鼠标按下之后只能触发我们重写的功能,其他功能都会失效。然后使用pressed信号调用出来。