Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengakses Data Pembolehubah daripada Widget Kemasukan dalam Aplikasi Tkinter Berbilang Halaman?

Bagaimana untuk Mengakses Data Pembolehubah daripada Widget Kemasukan dalam Aplikasi Tkinter Berbilang Halaman?

Patricia Arquette
Patricia Arquetteasal
2024-11-04 04:52:29224semak imbas

How to Access Variable Data from an Entry Widget in a Multi-Page Tkinter Application?

Mengekstrak Data Pembolehubah daripada Kelas dalam Aplikasi Berbilang Halaman

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.

  1. Simpan rujukan pengawal dalam setiap halaman:

    class PageOne(ttk.Frame):
        def __init__(self, parent, controller):
            self.controller = controller
  2. 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
  3. 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:

  1. Buat struktur data dalam pengawal (cth., kamus):

    class MyApp(Tk):
        def __init__(self):
            self.app_data = {"name": StringVar()}
  2. 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"])
  3. 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!

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