PyQT5: Funktion mit Übergabeparameter

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
freilaurer
User
Beiträge: 2
Registriert: Sonntag 30. Juli 2017, 17:17

Sonntag 30. Juli 2017, 17:23

Hallo, ich habe mehrere pushButtons und möchte anstatt für jeden Button eine Funktion zu erstellen, alles über eine Funktion mit Übergabeparameter erstellen. Leider wird die Gui nichtmehr angezeigt sobald ich das versuche.
Woran könnte das liegen?

Code: Alles auswählen

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
    
        self.pushButton_1.clicked.connect(self.push_m(1))
        self.pushButton_2.clicked.connect(self.push_m(2))
        self.pushButton_3.clicked.connect(self.push_m(3))
        
     def push_m(self, zahl):
       	self.zahl = zahl
          self.textEdit.append(zahl)
Zuletzt geändert von Anonymous am Sonntag 30. Juli 2017, 18:07, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
__deets__
User
Beiträge: 2853
Registriert: Mittwoch 14. Oktober 2015, 14:29

Sonntag 30. Juli 2017, 18:04

Weil du deine Methode schon gleich aufrufst. Benutze stattdessen functools.partial, oder ein lambda. Findet sich in diesem Forum auch ca 10000 mal beschrieben. In jedem 2ten GUI Post.
freilaurer
User
Beiträge: 2
Registriert: Sonntag 30. Juli 2017, 17:17

Montag 31. Juli 2017, 18:32

Danke, hat geklappt :3

Code: Alles auswählen

self.pushButton_1.clicked.connect(lambda x: self.push_m(1))
Antworten