본문으로 바로가기

Tk의 Raise & Lower

category 카테고리 없음 2024. 4. 30. 13:56

raise와 lower

윈도우의 스택 순서를 제어하는 커맨드에는 raise와 lower가 있습니다. raise는 윈도우를 제일 앞으로 이동하고, lower는 윈도우를 최 하위로 이동합니다.

raise .
lower .


raise 커맨드로 인하여 제일 앞으로 이동한 윈도우는, 일시적인 것으로, 윈도우를 항상 제일 앞인 상태로 유지시키려면, BLT의 raise와 lower 커맨드를 사용할 필요가 있습니다.

package require BLT
 
::blt::winop raise .
::blt::winop lower .

raise와 focus

focus는 윈도우에 입력 포커스를 줍니다. 윈도우를 제일 앞으로 할 수 있습니다. focus 된 윈도우는 키 입력의 대상이 되고, 보통은 입력 커서가 점멸됩니다.

pack [entry .e]
raise .
 
focus .e

Tips

Tcl/Tk의 어플리케이션을 실행하면, 메인 윈도우에 포커스가 되어 있지 않은 상태에서 실행됩니다. 이때는, 스크립트의 선두에 메인 윈도우를 raise나 deiconify로 해결할 수 있습니다.

wm deiconify .
pack [button .b -text Push -command exit]


Linux의 Sawmill 윈도우 매니저는, 포커스 동작 옵션에 "윈도우가 나타나 표시될 때에 포커스 한다."와 같은 설정이 있기 때문에, 체크해두면 굳이 raise를 하지 않아도 되기 때문에 편리합니다. 그 밖의 윈도우 매니저에도 동일한 기능이 있을 것이므로, 문서를 충실히 읽어둘 필요가 있습니다.