0

ユーザーがデバイスのシリアルを入力する「entrySerial」という単一の入力ボックスがあります。このシリアルは、別のプロシージャに送信できるように変数に配置する必要があります。ユーザーが入力したものを変数に入れるにはどうすればよいですか? これは、ユーザーがボタンを押した後にのみ発生します。ユーザーが入力したときに入力が読み取られるのは望ましくありません。

4

1 に答える 1

2

エントリ ウィジェットには、ウィジェットのテキスト値を保持するグローバル変数の名前を取る-textvariableオプションがあります。これはライブであるため、ユーザーが入力すると常に現在の値が保持されますが、-validatecommand オプションを使用して、-validateオプションについて説明した特定の条件でコマンドを実行できます。これらの 1 つはキー プレス イベント (Enter を確認できる場所) であり、もう 1 つの便利なイベントは、フォーカスの喪失を検証することです。例えば:

set value "test"
entry .e -textvariable ::value -validate focusout -validatecommand {puts $::value; return 1}
pack .e -side left
pack [button .b -text Ok] -side right

別のコントロールまたはアプリケーションをクリックするか、Tab を使用して別のコントロールに切り替えてフォーカスを失ったときに、エントリ値を出力する必要があります。

于 2013-07-23T14:19:42.187 に答える