如何将参数传递给pyqtsignal?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (211)

我有一个pyqtsignal对象,我需要将一个参数传递给连接信号的函数。我的问题是如何从发出的整数中识别第二个参数。下面是我需要做的一个简单的例子。

class Plot2D(QObject):

    finish=pyqtSignal(int)

    def __init__(self):
        super(Plot2D,self).__init__()

    def Function(self):
        for i in range(30):
            print('cool')
            time.sleep(.5)
            self.finish.emit(i)

def hell(p,arg2):
    print(p)
    print(arg2)

argument='anything'
g=Plot2D()
g.finish.connect(lambda: hell(,argument))
g.Function()
提问于
用户回答回答于

试一试:

from PyQt5.QtCore    import *

class Plot2D(QObject):

    finish=pyqtSignal(int, str)

    def __init__(self):
        super(Plot2D,self).__init__()

    def Function(self):
        argument='anything'
        for i in range(30):
            print('cool')
            #time.sleep(.5)
            QThread.msleep(500)
            self.finish.emit(i, argument)

def hell(p, arg2):
    print(p)
    print(arg2)

#argument='anything'
g=Plot2D()
#g.finish.connect(lambda : hell(i, argument))
g.finish[int, str].connect(hell)
g.Function()

扫码关注云+社区

领取腾讯云代金券