在 Tkinter 中的框架之間切換
Tkinter 是 Python 的 GUI 框架,提供了一個簡單的機制來創建用戶友好的介面。然而,隨著應用程式變得更加複雜,需要在各個螢幕部分之間無縫切換。本文介紹了在 Tkinter 程式中實作框架導航的實用方法。
堆疊框架以實現優雅的導航
要在框架之間導航而不中斷程序流程,常見的策略是將多個框架堆疊在頂部彼此。透過將一個框架升高到其他框架之上,所需的內容就變得可見。當框架尺寸統一時,此方法特別有效。
這是示範此技術的程式碼片段:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class SampleApp(tk.Tk):
...
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
...
# Stack the frames on top of each other
for F in (StartPage, PageOne, PageTwo):
...
frame.grid(row=0, column=0, sticky= "nsew" )
self.show_frame( "StartPage" )
...
def show_frame(self, page_name):
'' 'Show a frame for the given page name' ''
frame = self.frames[page_name]
frame.tkraise()
|
登入後複製
應用程式演練
此範例包含一個開始頁和兩個附加頁(PageOne 和PageTwo)垂直堆疊。 show_frame 方法允許透過將頁面提升到其他頁面之上來在頁面之間進行切換。



替代方法:明確類別實例化
或者,您可以單獨建立類,允許在期間使用特定參數構造:
1 2 3 | self.frames[ "StartPage" ] = StartPage(parent=container, controller=self)
...
self.frames[ "StartPage" ].grid(row=0, column=0, sticky= "nsew" )
|
登入後複製
常見問題和資源
如需進一步說明,請探索這些附加資源:
- [了解Tkinter中的父級與控制器__init__](https://stackoverflow.com/questions/17306009/understanding-parent-and-controller-in-tkinter-init)
- [Tkinter!了解如何切換框架](https://stackoverflow.com/questions/45373558/tkinter-understanding-how-to-switch-frames)
- [Tkinter 框架調整大小](https://stackoverflow.com /questions/1923627/tkinter-frame-resize)
以上是如何在Tkinter中有效率地切換畫面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!