我试图编辑QLineEdit小部件,然后将新文本作为参数发送给函数,但它总是返回原始文本而不是新文本。下面是一段代码
self.shortCoffee1Label = QLineEdit("0")
self.shortCoffee1Label.editingFinished.connect(self.sendValue(48, int(self.shortCoffee1Label.text())))
然后是sendValue函数
def sendValue(self, var, val):
def emmitValue():
self.messageReceived.setText("Sending new value...")
print("var received: " + str(var))
print("val received: " + str(val))
self.thread.sendValue(var, val)
return emmitValue
但是val始终为0,这是它设置的原始值。我做错了什么
如果您喜欢,程序将存储值“0”,并将其附加到editingFinished,而不是每次调用函数时都刷新它。所以你应该使用lambda(抱歉我的英语不好):
明白了
以下是最终代码:
因此,我们的想法是将对象本身作为参数发送,这样我就可以检索更新后的文本。事实证明,它可能将其解释为“发送此对象在编译时拥有的文本”。通过发送对象本身,问题得以解决
相关问题 更多 >
编程相关推荐