Seite 1 von 1
Herausfinden, von wo der Methodenaufruf kam
Verfasst: Samstag 20. Januar 2018, 15:24
von Patrick1990
Hallo,
ich suche einen Weg zu unterscheiden woher das Signal zum Aufruf einer Methode kam.
Habe in einer grafischen Oberfläche mehrere QLineEdit-Felder, die beim Bestätigen mit Enter alle die selbe Methode aufrufen. Kann ich nun herausfinden welche der Felder Auslöser war?
Re: Herausfinden, von wo der Methodenaufruf kam
Verfasst: Samstag 20. Januar 2018, 15:38
von __deets__
Theoretisch gibt es die sender-Methode. Das macht man in Python aber nicht. Stattdessen nimmst du functools.partial, und erzeugst ein Argument, das die Aufrufe unterscheidbar macht. Etwa so (pseudo-code):
Code: Alles auswählen
from functools import partial
...
vorname = QLineEdit()
vorname.on_enter.connect(partial(self._edit_action, "vorname"))
nachname = QLineEdit()
nachname.on_enter.connect(partial(self._edit_action, "nachname"))
def _edit_action(self, quelle):
print(quelle)
Re: Herausfinden, von wo der Methodenaufruf kam
Verfasst: Samstag 20. Januar 2018, 15:41
von __deets__
Nachtrag: du kannst natuerlich auch beliebig viele Argumente vorher anbinden, also zB auch die Instanzen der QLineEdits, etc. Und auch ggf. Platz lassen fuer Argumente (values usw).
Re: Herausfinden, von wo der Methodenaufruf kam
Verfasst: Samstag 20. Januar 2018, 21:17
von Patrick1990
Alles klar, vielen Dank