>백엔드 개발 >파이썬 튜토리얼 >Tkinter 노트북을 사용할 때 f-문자열 사용 및 실시간 업데이트를 허용하면서 한 탭에서 다른 탭 개체로 StringVar를 사용하는 방법

Tkinter 노트북을 사용할 때 f-문자열 사용 및 실시간 업데이트를 허용하면서 한 탭에서 다른 탭 개체로 StringVar를 사용하는 방법

WBOY
WBOY앞으로
2024-02-09 18:30:04864검색

使用 Tkinter Notebooks 时,如何将一个选项卡中的 StringVar 用于另一个选项卡对象,同时允许 f 字符串使用和实时更新

질문 내용

bg3 모드 제작을 돕기 위해 작은 프로젝트를 만들고 있습니다. 나의 궁극적인 목표는 데이터를 입력하고 저장할 때 파일을 내보낼 수 있는 여러 개의 탭을 갖는 것입니다.

문제 없이 저장과 탭 생성을 수행할 수 있었습니다. 내가 원하는 것은 모드가 생성할 사용자 정의 클래스의 이름을 configtab에 입력하는 것입니다(도움이 된다면 dnd를 위한 것입니다). 그런 다음 현지화 탭에 입력 필드가 있는 탭을 갖고 싶습니다. 태그는 구성 탭에서 클래스 이름을 읽고 클래스 이름 설명으로 표시됩니다. 따라서 구성에서 전사를 입력하고 현지화에서는 전사 설명을 표시합니다.

라이브 업데이트를 위해 stringvar를 호출할 수 있지만 f-문자열이나 기타 연결 기능을 사용할 수는 없습니다. get() 메서드를 사용하면 창이 생성될 때 클래스 이름으로 설정된 값만 받습니다. 따라서 classname.set("warrior")를 사용하면 classname.get()은 문자열을 반환하고 f-문자열을 사용할 수 있으며 전사 설명을 표시하도록 할 수 있습니다. 그러나 get()은 일회성 호출이므로 구성 탭에서 데이터를 변경해도 업데이트되지 않습니다.

아래는 현재 일반적인 아이디어를 보여주는 베어본 구현입니다. 최종 프로젝트에서는 클래스 이름 필드뿐만 아니라 여러 필드가 참조됩니다.

mainprogram.py

으아악

classconfigtab.py

으아악

localizationtab.py

으아악

Stackoverflow에서 검색한 결과 다른 유사한 질문을 찾았습니다. 그들은 추적, 바인딩 이벤트 또는 심지어 버튼을 눌러 데이터를 새로 고치는 방법을 언급했습니다.

추적 및 바인딩을 시도했지만 성공하지 못했습니다. 구현한 방식이 잘못되었을 수도 있습니다. 죄송합니다. 파일에 시도를 표시할 코드가 없습니다.


정답


말씀하신 대로 tkinter 변수에 trace()를 사용할 수 있습니다:

으아악

위 내용은 Tkinter 노트북을 사용할 때 f-문자열 사용 및 실시간 업데이트를 허용하면서 한 탭에서 다른 탭 개체로 StringVar를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제