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)
Mencipta Bingkai
Isytiharkan kamus untuk menyimpan berbilang bingkai:
self.frames = {}
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
Menindan dan Menunjukkan Bingkai
Tindan semua bingkai dalam bekas:
for frame in self.frames.values(): frame.grid(row=0, column=0, sticky="nsew")
Paparkan parap bingkai:
self.show_frame("StartPage")
Kaedah show_frame membawa bingkai yang diingini ke hadapan tindanan:
def show_frame(self, page_name): frame = self.frames[page_name] frame.tkraise()
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()
Alternatif
Walaupun menyusun bingkai ialah teknik biasa, anda juga boleh mempertimbangkan pendekatan lain seperti:
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!