>백엔드 개발 >파이썬 튜토리얼 >다중 페이지 Tkinter 애플리케이션의 항목 위젯에서 변수 데이터에 접근하는 방법은 무엇입니까?

다중 페이지 Tkinter 애플리케이션의 항목 위젯에서 변수 데이터에 접근하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-04 04:52:29274검색

How to Access Variable Data from an Entry Widget in a Multi-Page Tkinter Application?

다중 페이지 애플리케이션의 클래스에서 변수 데이터 추출

질문:

다중 페이지 Tkinter에서 애플리케이션, 다른 페이지 내의 한 페이지에 있는 항목 위젯의 변수 데이터에 어떻게 액세스합니까? 시도할 때마다 예외가 발생합니다.

컨트롤러 활용 방법:

앱의 기존 컨트롤러 개념을 고려하여 이를 사용하여 페이지 간 통신을 원활하게 합니다.

  1. 각 페이지에 컨트롤러 참조 저장:

    class PageOne(ttk.Frame):
        def __init__(self, parent, controller):
            self.controller = controller
  2. 클래스 이름이 지정된 페이지를 반환하는 컨트롤러 메서드 만들기:

    class MyApp(Tk):
        def get_page(self, classname):
            for page in self.frames.values():
                if str(page.__class__.__name__) == classname:
                    return page
  3. 다른 페이지의 공개 멤버에 액세스:

    class PageTwo(ttk.Frame):
        def print_it(self):
            page_one = self.controller.get_page("PageOne")
            value = page_one.some_entry.get()

컨트롤러에 데이터 저장:

피하려면 긴밀한 결합, 컨트롤러에 데이터 저장을 고려하세요.

  1. 컨트롤러에 데이터 구조 생성(예: 사전):

    class MyApp(Tk):
        def __init__(self):
            self.app_data = {"name": StringVar()}
  2. 위젯 생성 시 컨트롤러를 참조하도록 페이지 수정:

    class PageOne(ttk.Frame):
        def __init__(self, parent, controller):
            self.controller=controller
            self.some_entry = ttk.Entry(self, textvariable=self.controller.app_data["name"])
  3. 컨트롤러에서 데이터에 액세스:

    class PageTwo(ttk.Frame):
        def print_it(self):
            value = self.controller.app_data["name"].get()

위 내용은 다중 페이지 Tkinter 애플리케이션의 항목 위젯에서 변수 데이터에 접근하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.