Heim > Backend-Entwicklung > Python-Tutorial > Wie greife ich über ein Eingabe-Widget in einer mehrseitigen Tkinter-Anwendung auf variable Daten zu?

Wie greife ich über ein Eingabe-Widget in einer mehrseitigen Tkinter-Anwendung auf variable Daten zu?

Patricia Arquette
Freigeben: 2024-11-04 04:52:29
Original
305 Leute haben es durchsucht

How to Access Variable Data from an Entry Widget in a Multi-Page Tkinter Application?

Variable Daten aus einer Klasse in einer mehrseitigen Anwendung extrahieren

Frage:

In einem mehrseitigen Tkinter Wie greifen Sie in einer Anwendung auf variable Daten von einem Eintrags-Widget auf einer Seite innerhalb einer anderen Seite zu? Jeder Versuch löst eine Ausnahme aus.

So nutzen Sie den Controller:

Angesichts des vorhandenen Controller-Konzepts der App können Sie es verwenden, um die Kommunikation zwischen Seiten zu erleichtern.

  1. Speichern Sie auf jeder Seite eine Controller-Referenz:

    class PageOne(ttk.Frame):
        def __init__(self, parent, controller):
            self.controller = controller
    Nach dem Login kopieren
  2. Erstellen Sie eine Controller-Methode, um eine Seite anhand ihres Klassennamens zurückzugeben:

    class MyApp(Tk):
        def get_page(self, classname):
            for page in self.frames.values():
                if str(page.__class__.__name__) == classname:
                    return page
    Nach dem Login kopieren
  3. Zugriff auf öffentliche Mitglieder anderer Seiten:

    class PageTwo(ttk.Frame):
        def print_it(self):
            page_one = self.controller.get_page("PageOne")
            value = page_one.some_entry.get()
    Nach dem Login kopieren

Speicherung von Daten im Controller:

Zu vermeiden Bei enger Kopplung sollten Sie erwägen, Daten im Controller zu speichern:

  1. Erstellen Sie eine Datenstruktur im Controller (z. B. Wörterbuch):

    class MyApp(Tk):
        def __init__(self):
            self.app_data = {"name": StringVar()}
    Nach dem Login kopieren
  2. Ändern Sie Seiten, um beim Erstellen von Widgets auf den Controller zu verweisen:

    class PageOne(ttk.Frame):
        def __init__(self, parent, controller):
            self.controller=controller
            self.some_entry = ttk.Entry(self, textvariable=self.controller.app_data["name"])
    Nach dem Login kopieren
  3. Zugriffsdaten vom Controller:

    class PageTwo(ttk.Frame):
        def print_it(self):
            value = self.controller.app_data["name"].get()
    Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie greife ich über ein Eingabe-Widget in einer mehrseitigen Tkinter-Anwendung auf variable Daten zu?. 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