ウィジェット用のオンバリューチェンジタイプのイベントまたは.trace_variable()テクニックを使用しますか?

StackOverflow https://stackoverflow.com/questions/4165164

質問

エントリー、テキスト、スピナー、チェックボタン、ラジオボタンなどのデータ入力ウィジェットの場合、オンの価値変更タイプのイベントはありますか?オンバリューチェンジとは、キーボードの入力または削除/貼り付け(およびテキストedit_undo/edit_redo)アクティビティにより、ウィジェットの値がいつ変更されたかを検出する機能を意味しますか? TKINTERイベントドキュメント[1]に記載されているこのようなイベントはありません。

TKINTER変数をウィジェット値にリンクするための適切な手法は、これらの変数を監視および使用したい '.trace_variable(' w '、...)メソッドをバインドして値の変化にしますか?これは正しいアプローチのように思えますが、私が研究したTKINTERアプリケーションソースコードで多くのTRACE_VARIAL()の使用を見たことはありません...このアプローチの使用に慎重になるように導きます。

[1] http://infohost.nmt.edu/tcc/help/pubs/tkinter/events.html

役に立ちましたか?

解決

さまざまなウィジェットでは、さまざまなソリューションが必要です。たとえば、チェックボタンとラジオボタンにはコマンドオプションがあり、エントリウィジェットを使用すると、組み込みの検証機能を使用できます。

変数に結び付けることができるすべてのウィジェットにとって、変数トレースを実行することは一般的なソリューションです。テキストウィジェットは、多くの努力なしで変数に関連付けることができないため、1つの例外です。

TCL / TKの世界では、すべてのウィジェットを単一の配列(ハッシュマップ /辞書のTCLの名前)に関連付けてから、配列に単一のトレースを配置します。残念ながら、TKINTERはTCLアレイを直接サポートしていません。ただし、サポートはやや簡単にハッキングできます。詳細については、この質問に対する私の回答を参照してください。 TKINTERウィジェット値が変更されたときはいつでもコードを実行する方法は?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top