So überschreiben Sie geerbte Bindungen in Tkinter-Text-Widgets
Beim Binden von Ereignissen an ein Tkinter-Text-Widget können Sie auf Situationen stoßen, in denen Sie dies wünschen Eigene Ereignisbindungen haben Vorrang vor den integrierten Bindungen des Widgets. Beispielsweise möchten Sie möglicherweise den Text im Widget ändern, wenn Ihre Ereignisbindungsfunktion ausgelöst wird.
Standardmäßig tritt das Problem auf, weil Ihre Ereignisbindung vor den Klassenbindungen des Text-Widgets aufgerufen wird. die für das Einfügen von Benutzereingaben in das Widget verantwortlich sind.
Lösung: Bindungs-Tags bearbeiten
Um dieses Problem zu beheben, können wir die Reihenfolge ändern, in der Bindungen verarbeitet werden Bearbeiten der mit dem Widget verknüpften „Bindtags“. Bindtags sind Beschriftungen, die Widgets zugewiesen werden. Standardmäßig verfügt jedes Widget über einen Bindtag, der seinem Namen entspricht. Widgets haben auch andere Bindungstags, wie ihre Klasse, den Root-Fensterpfad und einen speziellen Tag namens „all“.
Wenn ein Ereignis empfangen wird, verarbeitet Tkinter Bindungen in der folgenden Reihenfolge, von der höchsten zur unspezifischsten : widget, class, toplevel, all.
Option 1: Bind-Tags neu anordnen
Eine Option zum Überschreiben geerbter Bindungen besteht darin, die Reihenfolge der Bind-Tags neu anzuordnen. Indem wir den Bindtag des Widgets nach dem Klassen-Bindtag verschieben, können wir sicherstellen, dass Klassenbindungen vor Widget-Bindungen behandelt werden.
Option 2: Einführung eines neuen Bind-Tags
Ein anderer Ansatz besteht darin, einen zusätzlichen Bindtag zu erstellen, der nach dem Klassen-Bindtag platziert wird. Indem wir Ereignisse an dieses neue Tag binden, können wir sicherstellen, dass unsere Bindungen nach Klassenbindungen ausgeführt werden.
Vorteile der Verwendung eines neuen Bind-Tags
Das Neuanordnen von Bindtags kann sich auf alle auswirken Bindungen im Widget, die möglicherweise diejenigen beeinträchtigen, die auf einer bestimmten Reihenfolge basieren. Durch die Einführung eines neuen Bindtags können Sie überschriebene Bindungen selektiv nach den Klassenbindungen anwenden, sodass andere Bindungen davon nicht betroffen sind.
Beispiel
Der bereitgestellte Python-Code demonstriert die drei verschiedenen Bindtags oben genannten Konfigurationen. Wenn Sie mit den Eintrags-Widgets interagieren und Tasten drücken, werden Sie feststellen, dass die Statusbezeichnung für jedes Widget anders aktualisiert wird:
Das obige ist der detaillierte Inhalt vonWie überschreibe ich geerbte Bindungen in Tkinter-Text-Widgets?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!