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

Patricia Arquette
Lepaskan: 2024-11-04 04:52:29
asal
223 orang telah melayarinya

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

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()}
    Salin selepas log masuk
  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"])
    Salin selepas log masuk
  3. Akses data daripada pengawal:

    class PageTwo(ttk.Frame):
        def print_it(self):
            value = self.controller.app_data["name"].get()
    Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!