Wie teile ich Daten zwischen Klassen in einer mehrseitigen Anwendung?

Barbara Streisand
Freigeben: 2024-11-02 08:17:29
Original
323 Leute haben es durchsucht

How to Share Data Between Classes in a Multi-Page Application?

So greifen Sie auf variable Daten zwischen Klassen in einer mehrseitigen Anwendung zu

In einer mehrseitigen Anwendung, in der jede Seite durch a definiert ist Wenn Sie eine separate Klasse verwenden, kann der Zugriff auf variable Daten zwischen Klassen eine Herausforderung darstellen.

Nutzung des Controllers

Ein Ansatz besteht darin, die Anwendungscontrollerklasse zu verwenden, um die Kommunikation zwischen Seiten zu erleichtern. Fügen Sie dem Konstruktor jeder Seite einen Verweis auf den Controller hinzu:

<code class="python">class PageOne(ttk.Frame):
    def __init__(self, parent, controller):
        self.controller = controller
        ...</code>
Nach dem Login kopieren

Fügen Sie als Nächstes eine Methode zum Controller hinzu, die eine Seiteninstanz anhand ihres Klassennamens abruft:

<code class="python">class MyApp(Tk):
    ...
    def get_page(self, classname):
        for page in self.frames.values():
            if str(page.__class__.__name__) == classname:
                return page
        return None</code>
Nach dem Login kopieren

Dann von Innerhalb einer Seite können Sie auf die variablen Daten einer anderen Seite zugreifen:

<code class="python">class PageTwo(ttk.Frame):
    ...
    def print_it(self):
        page_one = self.controller.get_page("PageOne")
        value = page_one.some_entry.get()
        print ('The value stored in StartPage some_entry = %s' % value)</code>
Nach dem Login kopieren

Speichern von Daten im Controller

Um eine enge Kopplung zwischen Seiten zu vermeiden, sollten Sie erwägen, Daten im zu speichern Controller statt auf bestimmten Seiten:

<code class="python">class MyApp(Tk):
    def __init__(self):
        ...
        self.app_data = {"name": StringVar(),
                         "address": StringVar(),
                         ...
                        }</code>
Nach dem Login kopieren

Verweisen Sie dann auf jeder Seite auf die Datenstruktur des Controllers, wenn Sie Widgets erstellen:

<code class="python">class PageOne(ttk.Frame):
    def __init__(self, parent, controller):
        self.controller=controller
        ...
        self.some_entry = ttk.Entry(self,
            textvariable=self.controller.app_data["name"], ...) </code>
Nach dem Login kopieren

Zuletzt greifen Sie direkt auf die Daten des Controllers zu:

<code class="python">    def print_it(self):
        value = self.controller.app_data["address"].get()
        ...</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie teile ich Daten zwischen Klassen in einer mehrseitigen Anwendung?. 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