Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Berkongsi Data Antara Kelas dalam Aplikasi Berbilang Halaman?

Bagaimana untuk Berkongsi Data Antara Kelas dalam Aplikasi Berbilang Halaman?

Barbara Streisand
Barbara Streisandasal
2024-11-02 08:17:29251semak imbas

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

Cara Mengakses Data Pembolehubah Antara Kelas dalam Aplikasi Berbilang Halaman

Dalam aplikasi berbilang halaman di mana setiap halaman ditakrifkan oleh kelas berasingan, mengakses data pembolehubah antara kelas boleh menjadi mencabar.

Memanfaatkan Pengawal

Satu pendekatan ialah menggunakan kelas pengawal aplikasi untuk memudahkan komunikasi antara halaman. Tambahkan rujukan kepada pengawal pada setiap pembina halaman:

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

Seterusnya, tambahkan kaedah pada pengawal yang mendapatkan semula contoh halaman yang diberi nama kelasnya:

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

Kemudian, daripada dalam satu halaman, anda boleh mengakses data pembolehubah halaman lain:

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

Menyimpan Data dalam Pengawal

Untuk mengelakkan gandingan yang ketat antara halaman, pertimbangkan untuk menyimpan data dalam pengawal dan bukannya dalam halaman tertentu:

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

Kemudian, dalam setiap halaman, rujuk struktur data pengawal semasa membuat widget:

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

Akhir sekali, akses data daripada pengawal terus:

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

Atas ialah kandungan terperinci Bagaimana untuk Berkongsi Data Antara Kelas dalam Aplikasi Berbilang Halaman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn