在Qt当中,我们采用另一种反馈技术,信号(Signal)和槽(Slot)。
他们之间的关系如下:
当特定的事件发生时,就会产生信号,并触发与之相连的槽函数,Qt自带大量的 Signal 和 Slot,使用也非常简单:
self.connect(self.button1, SIGNAL("clicked()"), self.close)
第一个参数是你的信号发出点
第二个参数就是Signal
第三个参数就是Slot
这里唯一需要注意的就是,Slot虽然是一个函数,但是作为参数传入的时候后面是不带括号的
clicked()和close()都是Qt当中非常常用的Signal和Slot,就不再多说,事实上,Signal和Slot都是可以自定义的,下面重点讲讲自定义的过程。
Slot
Slot非常简单,如果它对应的是不带参数的Signal,那么它就是普通的自定义方法或者函数,如果涉及到带参数的Signal,可能稍微麻烦一点,等会和Signal一起讲。
Signal
在PyQt 4.5版本以后可以采用新的信号与槽方式。
Signal自定义分两步:声明,确定发射点。
例子:
from PyQt4.QtCore import *
from PyQt4.QtGui import *