問題:
在多頁Tkinter 中應用程式中,如何從一個頁面中的另一個頁面中的Entry 小工具存取變數資料?每次嘗試都會引發異常。
如何利用控制器:
鑑於應用程式現有的控制器概念,使用它來促進頁面之間的通訊。
在每個頁面中儲存控制器參考:
class PageOne(ttk.Frame): def __init__(self, parent, controller): self.controller = controller
建立一個控制器方法以傳回給定其類別名稱的頁:
class MyApp(Tk): def get_page(self, classname): for page in self.frames.values(): if str(page.__class__.__name__) == classname: return page
訪問其他頁面的公共成員:
class PageTwo(ttk.Frame): def print_it(self): page_one = self.controller.get_page("PageOne") value = page_one.some_entry.get()
在控制器中儲存資料:
避免緊密耦合,考慮在控制器中儲存資料:
在控制器中建立資料結構(例如字典):
class MyApp(Tk): def __init__(self): self.app_data = {"name": StringVar()}
修改頁面以在建立小部件時引用控制器:
class PageOne(ttk.Frame): def __init__(self, parent, controller): self.controller=controller self.some_entry = ttk.Entry(self, textvariable=self.controller.app_data["name"])
從控制器存取資料:
class PageTwo(ttk.Frame): def print_it(self): value = self.controller.app_data["name"].get()
以上是如何從多頁面 Tkinter 應用程式中的條目小工具存取變數資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!