Heim > Backend-Entwicklung > Python-Tutorial > Wie übergebe ich eindeutige Argumente an Tkinter-Schaltflächen, die in einer Schleife erstellt wurden?

Wie übergebe ich eindeutige Argumente an Tkinter-Schaltflächen, die in einer Schleife erstellt wurden?

Patricia Arquette
Freigeben: 2024-12-31 05:39:08
Original
378 Leute haben es durchsucht

How to Pass Unique Arguments to Tkinter Buttons Created in a Loop?

Übergabe von Befehlsargumenten in einer tkinter-Schaltflächenerstellungsschleife

In Tkinter stehen Benutzer beim Erstellen einer Reihe von Schaltflächen in einer for-Schleife häufig vor dem Problem das Problem der Übergabe unterschiedlicher Befehlsargumente an jede Schaltfläche. Das Ziel besteht darin, durch Extrahieren des Zählwerts (i) während des Funktionsaufrufs zu identifizieren, welche Taste gedrückt wird.

Bei der Implementierung dieses Ansatzes stoßen Entwickler jedoch auf ein besonderes Problem: Unabhängig von der Anzahl der erstellten Tasten werden die gedruckten Der Wert bleibt gleich und entspricht der letzten Iteration der Schleife. Dies deutet darauf hin, dass die Schaltflächen zwar unabhängig voneinander erstellt werden, der i-Wert in ihren Befehlsargumenten jedoch offenbar gemeinsam genutzt wird.

Problem lösen

Um diese Schwierigkeit zu überwinden und das zuzuweisen Um den i-Wert für jede Schaltfläche zu korrigieren, muss die im Befehl verwendete Lambda-Funktion geändert werden:

command=lambda: self.open_this(i)
Nach dem Login kopieren

Im ursprünglichen Lambda wird die i-Variable an der Funktion erfasst Definitionszeit, und da es außerhalb der Schleife zugewiesen wird, wurde es zum Zeitpunkt des Aufrufs der Funktion bereits durch den letzten Schleifenwert ersetzt.

Das modifizierte Lambda löst dieses Problem durch die Einführung eines zusätzlichen Arguments i=i , die zum Zeitpunkt der Funktionsdefinition den aktuellen i-Wert einer neuen Variablen zuweist. Daher behält jede Tastenerstellung den entsprechenden i-Wert bei und gewährleistet so einen ordnungsgemäßen Betrieb.

Das obige ist der detaillierte Inhalt vonWie übergebe ich eindeutige Argumente an Tkinter-Schaltflächen, die in einer Schleife erstellt wurden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage