Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Berkongsi Data Antara Kelas Berbeza dalam Aplikasi Tkinter?

Bagaimana untuk Berkongsi Data Antara Kelas Berbeza dalam Aplikasi Tkinter?

Linda Hamilton
Lepaskan: 2024-11-26 02:32:13
asal
384 orang telah melayarinya

How to Share Data Between Different Classes in a Tkinter Application?

Bagaimana untuk Mengakses Pembolehubah daripada Kelas Berbeza dalam tkinter?

Mengakses Data daripada Halaman Lain

Apabila mengakses data daripada halaman lain dalam tkinter, adalah penting untuk mempunyai rujukan kepada halaman khusus yang anda sasarkan. Dalam kes anda, PageTwo perlu mendapatkan semula pembolehubah self.v daripada PageOne.

Tkinter menyediakan mekanisme mudah untuk ini. Tambahkan atribut self.controller pada setiap pembina halaman, yang memberikan akses kepada objek pengawal. Pengawal memegang rujukan kepada semua halaman, membolehkan anda mendapatkan semula rujukan halaman.

Tambah baris berikut pada setiap pembina halaman untuk mewujudkan atribut self.controller:

self.controller = controller
Salin selepas log masuk

Seterusnya, tambah kaedah get_page ke kelas SampleApp untuk mendapatkan halaman rujukan:

class SampleApp(tk.Tk):
    ...
    def get_page(self, page_class):
        return self.frames[page_class]
    ...
Salin selepas log masuk

Kini, dalam mana-mana halaman, anda boleh mengakses objek halaman lain menggunakan kaedah get_page pengawal. Sebagai contoh, dalam PageTwo, anda boleh mengakses pembolehubah v PageOne seperti berikut:

page1 = self.controller.get_page(PageOne)
page1.v.set("Hello, world")
Salin selepas log masuk

Menggunakan Data Dikongsi

Penyelesaian yang lebih elegan ialah mencipta data kongsi yang boleh diakses oleh semua halaman. Mulakan kamus dalam kelas SampleApp dan berikan setiap halaman akses melalui pengawal:

class SampleApp(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        self.shared_data = {
            "username": tk.StringVar(),
            "password": tk.StringVar(),
            ...
        }
Salin selepas log masuk

Halaman kemudiannya boleh mengakses data yang dikongsi melalui pengawal:

entry1 = tk.Entry(self, textvariable=self.controller.shared_data["username"])
username = self.controller.shared_data["username"].get()
Salin selepas log masuk

Menggunakan data kongsi menggalakkan longgar gandingan, menjadikan pengubahsuaian halaman lebih mudah tanpa menjejaskan halaman lain. Pengawal berfungsi sebagai pusat rujukan, mengurangkan kebergantungan antara halaman.

Atas ialah kandungan terperinci Bagaimana untuk Berkongsi Data Antara Kelas Berbeza dalam Aplikasi Tkinter?. 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