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

Patricia Arquette
풀어 주다: 2024-11-04 04:52:29
원래의
222명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!