단일 proc을 사용하여 tk 창에서 모든 위젯을 비활성화하는 방법이 있습니까? 인수는 초기 최상위 경로가 될 수 있습니다.tk에서 모든 위젯 상태를 비활성화로 설정하는 방법은 무엇입니까?
2
A
답변
5
위젯이 주어지면 [winfo children]을 사용하여 위젯의 모든 하위 항목을 가져올 수 있습니다. 작은 재귀 프로 시저를 사용하면 위젯 트리에서 모든 위젯을 처리 할 수 있습니다. 게으르 길 원한다면 보통 [info commands. *]를 실행하여 모든 위젯 목록을 얻을 수 있습니다. 응용 프로그램이 "."로 시작하는 이름을 가진 프로 시저 또는 이미지를 작성하지 않는 한, 이는 종종 충분하지 않습니다.
대부분의 tk 위젯은 "-state"옵션을 허용하고, 상태는 중요하지 않으므로 무시할 수 있습니다 (예 : 프레임 위젯). 따라서 모든 위젯을 반복하고 [catch {$ widget configure -state disabled}]와 같은 작업을 수행 할 수 있습니다. 이것은 다른 수단 (예 : "state"부속 명령이있는 ttk 버튼)으로 활성화 또는 비활성화해야하는 특수한 위젯이있는 경우에는 작동하지 않습니다. 당신은 표준 위젯을 사용하여 간단한 응용 프로그램이있는 경우
,이 같은 충분 될 수 있습니다
위젯의 클래스를 얻기 위해 "[클래스 $ 위젯 winfo]"사용할 수있는 정밀한 제어를 위해proc disable_all {path} {
catch {$path configure -state disabled}
foreach child [winfo children $path] {
disable_all $child
}
}
, 그리고 클래스에 따라 다른 명령을하십시오.
관련 문제
- 1. Perl/Tk에서 창을 숨기고 다시 표시하십시오. 모든 위젯
- 2. GridViewColumn을 읽기 전용/비활성화로 만드는 방법은 무엇입니까?
- 3. httpd.conf, auth 비활성화로 변경
- 4. 모든 개발자에게 연결 문자열을 설정하는 방법은 무엇입니까?
- 5. PHP에서 모든 페이지의 색상을 설정하는 방법은 무엇입니까?
- 6. Matcher의 상태를 찾는 방법은 무엇입니까?
- 7. state_machine에서 이벤트 실행 결과에 따라 다음 상태를 설정하는 방법은 무엇입니까?
- 8. 언더 레이어 요소를 클릭 취소/비활성화로 만드는 방법은 무엇입니까?
- 9. Silverlight에서 상태를 유지하는 방법은 무엇입니까?
- 10. 마우스의로드 상태를 표시하는 방법은 무엇입니까?
- 11. SearchView 위젯 - 내부의 모든 텍스트를 선택하는 방법은 무엇입니까?
- 12. Perl/Tk에서 서브 루틴에 인수를 전달하는 방법은 무엇입니까?
- 13. 위젯 스크립트를 생성하는 방법은 무엇입니까?
- 14. Android에서지도 상태를 유지하는 방법은 무엇입니까?
- 15. 교착 상태를 디버깅하는 방법은 무엇입니까?
- 16. 프로필에 상태를 저장하는 방법은 무엇입니까?
- 17. 스레드의 상태를 얻는 방법은 무엇입니까?
- 18. Resultset 상태를 확인하는 방법은 무엇입니까?
- 19. listwidget 항목의 값을 설정하는 방법은 무엇입니까?
- 20. AndEngine을 설정하는 방법은 무엇입니까?
- 21. 캔버스 상태를 db로 저장하는 방법은 무엇입니까?
- 22. Tk에서 최대화 신호를 잡는 방법?
- 23. Perl/Tk에서 창을 닫으려면 어떻게해야합니까?
- 24. Jinja2에서는 모든 키를 사전의 값으로 설정하는 가장 쉬운 방법은 무엇입니까?
- 25. 선택한 모든 이미지의 자르기를 설정하는 Lightroom 플러그인을 작성하는 방법은 무엇입니까?
- 26. 모든 화면 높이에 맞는이 레이아웃을 설정하는 방법은 무엇입니까?
- 27. FitNesse : 모든 테스트/제품군에 대해 .NET을 설정하는 방법은 무엇입니까?
- 28. 모든 활동 안드로이드에서 herder를 설정하는 include 태그를 사용하는 방법은 무엇입니까?
- 29. 기업 인쇄 서버에서 모든 인쇄물을 흑백으로 기본 설정하는 방법은 무엇입니까?
- 30. 모든 Java Swing 창에 기본 아이콘을 설정하는 방법은 무엇입니까?
tcl 재귀 proc에서 위젯의 이전 상태를 저장할 수 있습니까? 다음 번에는 비활성화 된 기능 만 활성화 할 수 있습니다. – OliveOne
나는 시저의 walkIntoTKTree {w} { \t 세트 깊이 0 \t 동안 {$ 깊이 <사용할 생각 [어린이 winfo llength을 [$] w]} { \t \t \t walkIntoTKTree [LINDEX [어린이 winfo $의 w] $ 깊이] \t \t \t incr depth; \t} \t "w = $ w" } 을 넣지 만 더 좋음 – OliveOne