如何从method接收返回值到pyqt5中的变量?

时间:2019-09-09 20:36:34

标签: pyqt5

我已经编写了将代码发送给方法的代码,  即

    b = "tp send"
    a = self.sendnprint.clicked.connect(lambda: self.CBautofill(b))
    print(a)

然后方法是这样的

 def CBautofill(self,a10):
    print(a10)
    appppppp = "to receive"
    return(appppppp)

但是我实际上没有收到任何错误,但是结果却不是异常,而且我认为其接收到了空值?

1 个答案:

答案 0 :(得分:0)

您没有得到想要的东西有两个原因。

首先,lambda声明不是return结果,而是lambda函数本身:

In [1]: a = lambda x: x * 5

In [2]: print(a)
<function <lambda> at 0xb5d6a95c>

In [3]: print(a(5))
25

然后,signal -> slot连接仅仅是将信号连接到插槽(函数/方法)并返回None的功能。

        # ...
        b = "tp send"
        self.sendnprint.clicked.connect(lambda: self.getResult(b))

    def getResult(self, value):
        print(self.CBautofill(value))

    def CBautofill(self,a10):
        print(a10)
        appppppp = "to receive"
        return(appppppp)