エントリ内でマウスホイールをクリックすると文字が入力される。
続いて、コピー&ペーストになっているけどカット&ペーストの間違いです。
で、eventをaddで追記してやってbindでその動作を定義してやる。
今度は、エントリ内の文字を消して、「test」と入力して、マウスで選択、右クリックする。
エントリ内文字を削除して、マウスホイールをクリックすると、「test」の文字が再び表示される。
eventコマンド
イベントコマンドは仮想イベントを定義しイベントを合成するなどのウィンドウ・システム・イベントを扱うためのいくつかの機能を提供します。
コマンドは最初の引数によって決定されます。
イベントにはいくつかの異なる形式があります。
event add <<仮想イベント>> シーケンス シーケンス ・・・
仮想イベントに対して、イベントのシーケンス(手続き)を対応づけます。
シーケンスは複数指定可能です。
この場合は間を空白で区切り、そのどれが選ばれても仮想イベントを発生させる。
シーケンスには<Contreol-x>などのbindコマンドのイベントパターンを使う。
event delete <<仮想イベント>> シーケンス シーケンス ・・・
仮想イベントの指定を削除する。
シーケンスを指定した場合は指定したものの関連付けがなくなる。
シーケンスを省くと仮想イベントのすべての指定を削除する。
event generate ウィンドウ イベント オプション 値
イベントを強制的に発生させる。
ウィンドウはウィジェットパスかウジェットIDを指定。
イベントにはbindコマンドのイベントパターンか仮想イベントのどちらかを指定。
オプションは付帯情報でたとえばマウスボタンクリックのイベントを発生させたいのであれば、xy座標を指定することができる。
オプション
-button 数 マウスボタンの番号を指定、イベントを受け取った側では%bで参照できる。
-delta 数 マウスホイールの回転量を指定する。受け取った側では%Dで参照できる。
-keycode 数 キーコードを指定。イベントを受け取った側では%kで参照できる。
-keycode 名前 キーのテキスト表現を指定。受け取った側は%Kで参照できる。
-rootx コード スクリーン上のX座標を指定。イベントを受け取った側は%Xで参照できる。
-rooty コード スクリーン上のY座標を指定。イベントを受け取った側は%Yで参照できる。
-time 整数 タイムスタンプを指定(整数で)。イベントを受け取った側は%tで参照できる。
-X コード ウィジェット上のX座標を指定。イベントを受け取った側では%xで参照できる。
-Y コード ウィジェット上のY座標を指定。イベントを受け取った側では%yで参照できる。
-when いつ? (いつ?)の値を指定することによってイベント発生順序を制御する。nowを指定するとevent generateコマンドが終了する前にイベントを発生させます。オプションを指定しない場合は、これがデフォルトです。tailを指定すると一番最後にイベントが発生します。headを指定すると最初にイベントが発生します。markを指定すると一連のイベントを最初に発生させたいが、その順序を制御したい時に利用します。
-count 数 整数でイベントのカウントフィールドを指定。イベントを公開するために有効な%cに対応。
-borderwidth
-detail
-focus
-height
-keysym
-mode
-override
-place
-subwindow
-sendevent
-serial
-state
-width
-warp
Tkは以下の仮想イベントを定義して通知しています。
<<AltUnderlined>>アンダーラインオプションを指定して河川のある文字にAltキーとの組み合わせで押されたことを通知するウィジェットに送信される。
<<Invoke>>これは<space>による代替。いくつかのウィジェット(ボタン、リストボックス、メニューなどに)に送信することができる。
<<MenuSelect>>メニューで現在選択されている項目が変更されたときにこれがメニューに送信される。
<<ListboxSelect>>リストボックスで選択した項目のセットが更新されたリストボックスに送信される。
<<Modified>>ウィジェットの内容が変更されたときにこれをテキストウィジェットに送信する。
<<Selection>>ウィジェット内の選択が変更されるときにはテキストをジェットに送信される。
<<ThemeChanged>>TTK(タイル)のテーマが変更されたときにはテキストウィジェットに送信される。
<<TraverseIn>>
<<TraverseOut>>
<<Clear>>現在選択されているウィジェットの内容を削除。
<<Copy>>クリップボードに現在選択されているウィジェットの内容をコピーする。
<<Cut>>クリップボードに現在選択されているウィジェットの内容を移動する。
<<LineEnd>>任意の選択されたコンテンツの選択を解除しながら現在のウィジェットの行末に移動する。
<<LineStart>>任意の選択されたコンテンツの選択を解除しながら現在のウィジェットの行の先頭に移動する。
<<NextChar>>任意の選択されたコンテンツの選択を解除しながら現在のウィジェットの次の項目に移動する。
<<NextLine>>任意の選択されたコンテンツの選択を解除しながら現在のウィジェットの次の段落に移動する。
<<NextWord>>任意の選択されたコンテンツの選択を解除しながら現在のウィジェットの次のグループに移動する。
<<Paste>>クリップボードの内容を現在選択されているウィジェットの内容と交換する。
<<PasteSelection>>マウスの日で選択範囲の内容を挿入。
<<PrevChar>>任意の選択されたコンテンツの選択を解除しながら現在のウィジェットで前の項目に移動します。
<<PrevLive>>任意の選択されたコンテンツの選択を解除しながら現在のウィジェットの前の行に移動します。
<<PrevPara>>任意の選択されたコンテンツの選択を解除しながら現在のウィジェットで前の段落に移動します。
<<PrevWindow>>任意の選択されたコンテンツの選択を解除しながら現在のウィジェットで前のウィンドウに戻る。
<<PrevWord>>任意の選択されたコンテンツの選択を解除しながら現在のウィジェット内の項目の前のグループに移動。
<<Redo>>取り消した操作をやり直す。
<<SelectAll>>完全なウィジェットに選択された内容の範囲を設定。
<<SelectLineEnd>>選択されたコンテンツの範囲を拡大しながら現在のウィジェットの行末に移動。
<<SelectLineStart>>>選択されたコンテンツの範囲を拡大しながら現在のウィジェットの行の先頭に移動。
<<SelectNextChar>>>選択されたコンテンツの範囲を拡大しながら現在のウィジェットの次の項目に移動。
<<SelectNextLine>>>選択されたコンテンツの範囲を拡大しながら現在のウィジェットの次の行に移動。
<<SelectNextPara>>>選択されたコンテンツの範囲を拡大しながら現在のウィジェットの次の段落に移動。
<<SelectNextWord>>>選択されたコンテンツの範囲を拡大しながら現在のウィジェット内の項目の次のグループに移動。
<<SelectNone>>>選択されたコンテンツの範囲をリセットします。
<<SelectPrevChar>>>選択されたコンテンツの範囲を拡大しながら現在のウィジェットの前の項目に移動。
<<SelectPrevLine>>>選択されたコンテンツの範囲を拡大しながら現在のウィジェットの前の行に移動。
<<SelectPrevPara>>>選択されたコンテンツの範囲を拡大しながら現在のウィジェットの前の段落に移動。
<<SelectPrevWord>>>選択されたコンテンツの範囲を拡大しながら現在のウィジェット内の項目の前のグループに移動。
<<ToggleSelection>>選択を切り替える。
<<Undo>> 直前の操作を取り消す。


