为什么我无法命名PyQt过载信号

时间:2016-02-14 20:54:41

标签: python pyqt

请参阅以下代码。

首先,我可以将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()

0 个答案:

没有答案