Tk의 Raise & Lower

admin의 아바타

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 를 하지 않아도 되기 때문에 편리합니다. 그 밖의 윈도우 매니저에도 동일한 기능이 있을것이므로, 문서를 충실히 읽어둘 필요가 있습니다.