Tk上のカーソル表示を消す
最終更新: [2005/11/03]
カーソルを消した〜い
Tk でプレゼンテーション風のツールを作ったとして(というかしょぼいのを
作りつつあるのだが),そのときにはカーソル表示が邪魔になる.空のカー
ソルというのが標準でされてたりカーソル表示を止めるというオプションでも
あればいいのだが,残念ながらそれは Tk にはないようだ.調べてみる (man
Tk_GetCursor(3)) とカーソル指定に X11 のビットマップや Windows のアイ
コンを指定できるようなのでこれでカーソルを消す.
※ 妥協して標準で用意されている dot というカーソルを使うことも考えたの
だが,X11 の dot カーソルは点でも,Windows 上だと白い○になってしまっ
てダメだった.
指定秒後に消す
上の方法を使って一定時間マウスポインタ操作がなければカーソルを消すよう
にしてみます.もちろんポインタが動いたら表示を再開します.
proc delcursor {} {
global tcl_platform
if {$tcl_platform(platform)=="windows"} {
. configure -cursor "@null.Ico"
} else {
. configure -cursor "@null.xbm black"
}
}
set cursor_motion 1
set cursor_vanish 0
proc cursorVanish {delay} {
global cursor_motion cursor_vanish
if {!$cursor_motion && !$cursor_vanish} {
delcursor
set cursor_vanish 1
}
set cursor_motion 0
after $delay cursorVanish $delay
}
after 0 cursorVanish 4000
bind . <Motion> {
%W configure -cursor left_ptr
set cursor_vanish 0
set cursor_motion 1
}
||Tcl/Tk 入門||
Mail-to:
oshiro@mibai.tec.u-ryukyu.ac.jp