请参阅以下代码。
首先,我可以将self.shoot[int, int]
更改为self.not_shoot[int, int]
以获得相同的结果。这对我来说,我有两个信号,拍摄和not_shoot?
其次,我不能改变所有'拍摄'到' not_shoot'。这看起来我没有创建一个超载信号?
第三,我可以将self.not_shoot[int, int]
更改为self.shoot[int, int]
以获得相同的结果。看起来我有一个信号,射击?
我找不到理解或解释这个问题的好方法。任何人都可以帮助我吗?
另请参阅 Official Manual
程序结果是
slut int 1 2
slut str strnig1 string2
from PyQt5.QtCore import *
from PyQt5.QtWidgets import QApplication, QMainWindow
class signalTest(QObject):
shoot = pyqtSignal([str, str], [int, int], name='not_shoot')
def __init__(self):
super().__init__()
self.not_shoot[int, int].connect(self.slut)
self.shoot[str, str].connect(self.slut_str)
self.shoot[int, int].emit(1, 2)
self.shoot[str, str].emit('strnig1', 'string2')
def slut(self, a, b):
print('slut int', a, b )
def slut_str(self, a, b):
print('slut str', a, b)
if __name__ == '__main__':
app = QApplication(sys.argv)
signalTest()