Soalan:
Dalam Tkinter berbilang halaman aplikasi, bagaimana anda mengakses data berubah-ubah daripada widget Kemasukan dalam satu halaman dalam halaman lain? Setiap percubaan menimbulkan pengecualian.
Cara Memanfaatkan Pengawal:
Memandangkan konsep pengawal sedia ada apl, gunakannya untuk memudahkan komunikasi antara halaman.
Simpan rujukan pengawal dalam setiap halaman:
class PageOne(ttk.Frame): def __init__(self, parent, controller): self.controller = controller
Buat kaedah pengawal untuk mengembalikan halaman yang diberi nama kelasnya:
class MyApp(Tk): def get_page(self, classname): for page in self.frames.values(): if str(page.__class__.__name__) == classname: return page
Akses ahli awam halaman lain:
class PageTwo(ttk.Frame): def print_it(self): page_one = self.controller.get_page("PageOne") value = page_one.some_entry.get()
Menyimpan Data dalam Pengawal:
Untuk mengelakkan gandingan yang ketat, pertimbangkan untuk menyimpan data dalam pengawal:
Buat struktur data dalam pengawal (cth., kamus):
class MyApp(Tk): def __init__(self): self.app_data = {"name": StringVar()}
Ubah suai halaman untuk merujuk pengawal semasa membuat widget:
class PageOne(ttk.Frame): def __init__(self, parent, controller): self.controller=controller self.some_entry = ttk.Entry(self, textvariable=self.controller.app_data["name"])
Akses data daripada pengawal:
class PageTwo(ttk.Frame): def print_it(self): value = self.controller.app_data["name"].get()
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Data Pembolehubah daripada Widget Kemasukan dalam Aplikasi Tkinter Berbilang Halaman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!