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 :)