질문:
다중 페이지 Tkinter에서 애플리케이션, 다른 페이지 내의 한 페이지에 있는 항목 위젯의 변수 데이터에 어떻게 액세스합니까? 시도할 때마다 예외가 발생합니다.
컨트롤러 활용 방법:
앱의 기존 컨트롤러 개념을 고려하여 이를 사용하여 페이지 간 통신을 원활하게 합니다.
각 페이지에 컨트롤러 참조 저장:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!