Saya mencoba mengedit widget QLineEdit dan kemudian mengirim teks baru sebagai parameter ke suatu fungsi, tetapi selalu mengembalikan teks asli, bukan teks baru. Berikut cuplikan kodenya
self.shortCoffee1Label = QLineEdit("0")
self.shortCoffee1Label.editingFinished.connect(self.sendValue(48, int(self.shortCoffee1Label.text())))
dan kemudian fungsi 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
Tapi val selalu 0, yang merupakan nilai asli yang ditetapkan. Apa yang saya lakukan salah?
Function()
tetapi Anda menyediakannya dengan fungsi - aliasFunction
maka jika Anda memiliki parameter Anda ingin meneruskannya, Anda melakukannya di dalam fungsi itu sehingga kita akan memilikiself.shortCoffee1Label.editingFinished.connect(self.SendNewValue)
ini, lalu didef SendNewValue(self):
Anda akan memiliki baris yang memanggil apa yang Anda inginkan menggunakan parameter sebagai berikut: - person Dennis Jensen   schedule 06.04.2020self.sendValue(48, int(self.shortCoffee1Label.text()))
dan hanya itu yang Anda perlukan dalam fungsi itu atau ada cara lain untuk melakukan ini yang tidak terlalu rumit dibandingkan menambahkan ekspresi Lambda karena melanggar K.I.S.S. aturan pemrograman (Tetap Sederhana dan Cerdas) dengan menambahkan kompleksitas yang tidak perlu untuk memasukkan sebanyak mungkin hal dalam satu baris kode -- yang telah terbukti menjadi metodologi yang buruk sejak lama. - person Dennis Jensen   schedule 06.04.2020