MindでGUIプログラミング- もどる -
■ 1998-12-03 [Tcl/Tk] マウスカーソル形状
テキストやエントリなどのテキスト系ウイジェット上にマウスカーソルを持ってくると、マウスカーソルの形状は自動的に垂直の細い線(挿入カーソル)に変化します。しかし、場合によっては、このカーソル形状を別のものにしたい時があります。
例えば、テキストウイジェットを単なるラベルとして使いたい場合などは、挿入カーソルではなく通常の矢印型のままのほうが違和感がなく具合が良いです。Tcl/Tkでは、そんな時のために、各ウイジェットごとに-cursorオプションでマウスカーソルの形状や背景・表示色を指定できるようにしてあります。形状については、Tcl/Tkが持っているカーソル形状名(シンボル名)で指定することにより、ウイジェット上でのカーソル形状を希望のものに変化させることができます。
例:カーソルを手の形状にする。text .twin -width 80 -height 20 -cursor hand2
ところが、この赤色部分で指定するシンボル名の一覧には、なぜか通常の矢印型のカーソル名がありません。(?_?)
私は、特別なカーソル形状ではなく、左上を向いたごく普通のカーソルにしたいのに、その名前がないため、指定することができないんです。どうしてデフォルトのカーソル形状の名前がないの? と、これでずいぶん悩みました。で、いろいろ書籍を調べたら、「Tcl&Tkツールキット」(John K.Ousterhout著、西中芳幸・石曽根信訳)の中に、次のような記述を発見。
「空文字列を指定した場合には、デフォルトとして親ウイジェットのカーソルが表示される」
そこで、次のように指定してみたら、ようやく矢印型の普通のカーソルになりました。(^o^)v
例:テキストウィジェット上で通常の矢印型カーソルにする。text .twin -width 80 -height 20 -cursor {}
こんな風になっていたとは・・・。デフォルトのカーソル形状だから名前がなく、文字通り「空文字列」だったんだなぁ。妙に納得。