Bagaimana untuk Berkongsi Data Antara Kelas dalam Aplikasi Berbilang Halaman?

Barbara Streisand
Lepaskan: 2024-11-02 08:17:29
asal
324 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Akhir sekali, akses data daripada pengawal terus:

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan