Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Bertukar Antara Berbilang Bingkai dengan Cekap dalam Aplikasi Tkinter?

Bagaimanakah Saya Boleh Bertukar Antara Berbilang Bingkai dengan Cekap dalam Aplikasi Tkinter?

Linda Hamilton
Lepaskan: 2024-12-19 18:42:10
asal
140 orang telah melayarinya

How Can I Efficiently Switch Between Multiple Frames in a Tkinter Application?

Bertukar Antara Bingkai dalam Tkinter

Apabila mencipta program yang kompleks dengan Tkinter, mengendalikan berbilang bingkai boleh menjadi satu cabaran. Jika anda mereka bentuk GUI dengan menu mula dan bahagian yang berbeza, anda mungkin tertanya-tanya bagaimana untuk membuat peralihan yang lancar antara bahagian tersebut.

Menyusun Bingkai

Satu penyelesaian yang berkesan ialah dengan susun bingkai di atas satu sama lain. Dengan melaraskan keterlihatan mereka, anda boleh memaparkan bingkai yang diingini sambil menyembunyikan yang lain.

Bingkai Bekas

Buat bingkai bekas untuk menyimpan semua bingkai lain:

container = tk.Frame(self)
container.pack(side="top", fill="both", expand=True)
Salin selepas log masuk

Mencipta Bingkai

Isytiharkan kamus untuk menyimpan berbilang bingkai:

self.frames = {}
Salin selepas log masuk

Tambah setiap kelas bingkai dalam satu gelung:

for F in (StartPage, PageOne, PageTwo):
    page_name = F.__name__
    frame = F(parent=container, controller=self)
    self.frames[page_name] = frame
Salin selepas log masuk

Menindan dan Menunjukkan Bingkai

Tindan semua bingkai dalam bekas:

for frame in self.frames.values():
    frame.grid(row=0, column=0, sticky="nsew")
Salin selepas log masuk

Paparkan parap bingkai:

self.show_frame("StartPage")
Salin selepas log masuk

Kaedah show_frame membawa bingkai yang diingini ke hadapan tindanan:

def show_frame(self, page_name):
    frame = self.frames[page_name]
    frame.tkraise()
Salin selepas log masuk

Contoh Pelaksanaan

Berikut ialah contoh aplikasi yang menunjukkan penggunaan tindanan bingkai:

class SampleApp(tk.Tk):
    # ...
    def show_frame(self, page_name):
        # ...

class StartPage(tk.Frame):
    # ...

class PageOne(tk.Frame):
    # ...

class PageTwo(tk.Frame):
    # ...

if __name__ == "__main__":
    app = SampleApp()
    app.mainloop()
Salin selepas log masuk

Alternatif

Walaupun menyusun bingkai ialah teknik biasa, anda juga boleh mempertimbangkan pendekatan lain seperti:

  • Menggunakan widget buku nota untuk bertukar antara yang berbeza "halaman."
  • Menggantikan bingkai semasa dengan yang baharu, tetapi kaedah ini tidak secekap menyusun bingkai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Bertukar Antara Berbilang Bingkai dengan Cekap 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