Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengakses Pembolehubah Ditakrifkan dalam Kelas Berbeza Dalam Aplikasi Tkinter?
Mengakses Pembolehubah Merentas Kelas dalam Tkinter
Dalam tkinter, anda menghadapi situasi di mana ia menjadi wajar untuk mengakses pembolehubah yang ditakrifkan dalam kelas yang berbeza. Ini memerlukan mewujudkan sambungan dan rujukan antara kelas ini.
Mewujudkan Rujukan
Untuk mengakses pembolehubah daripada kelas lain, anda perlu mendapatkan rujukan kepada kelas tersebut. Dalam contoh anda, PageTwo perlu mengakses pembolehubah self.v daripada PageOne. Untuk mencapai matlamat ini, gunakan langkah berikut:
# Get a reference to the controller in PageOne self.controller = controller # Define a method in the controller to return a reference to any page def get_page(self, page_class): return self.frames[page_class]
Dengan menggunakan kaedah ini, anda kini boleh mengakses pembolehubah self.v dalam HalamanDua seperti berikut:
# Get a reference to PageOne page1 = self.controller.get_page(PageOne) # Access the self.v variable from PageOne page1.v.set("Hello, world")
Dikongsi Data
Pendekatan alternatif untuk mengakses pembolehubah merentas kelas ialah menggunakan data yang dikongsi. Cipta kamus pembolehubah kongsi dalam kelas aplikasi utama (SampleApp) dan jadikannya boleh diakses oleh semua halaman melalui pengawal:
# Create a dictionary of shared variables in SampleApp self.shared_data = { "username": tk.StringVar(), "password": tk.StringVar(), ... }
Akses data kongsi dalam mana-mana halaman seperti berikut:
# Get the shared data from the controller username_var = self.controller.shared_data["username"] # Set the username username_var.set("my_username")
Dengan menggunakan data yang dikongsi, anda memisahkan halaman, menjadikannya kurang bergantung pada pelaksanaan satu sama lain. Ini memberikan lebih fleksibiliti dan memudahkan penyelenggaraan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Pembolehubah Ditakrifkan dalam Kelas Berbeza Dalam Aplikasi Tkinter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!