python/tkinter:リストボックスセパレータ、無効なアイテム、キーボードナビゲーション?
-
30-09-2019 - |
質問
TKINTER LISTBOXウィジェットを勉強していますが、次の機能のソリューションを見つけることができませんでした。
選択不可能な水平セパレーターアイテムを作成するにはどうすればよいですか。 TKINTERメニューウィジェットの.add_separator()に相当するセパレーター? (ダッシュやアンダースコアのような文字を使用すると、ひどく見えます)。
特定のアイテムを無効にするにはどうすればよいですか?成功せずに.itemconfig(index、state = 'disabled')を使用しようとしました。
キーボードナビゲーションを有効にするにはどうすればよいですか。ユーザーのキーボード入力が、ユーザーが入力したテキストから始まる最も近いアイテムに1つを自動的にスクロールすると?私はバインドしなければなりません( 'u003CKeyPress> 、...)そして、この行動を自分で管理しますか?
上記の機能の一部は、テキストウィジェットまたはTTKツリービューウィジェットを使用して実装しやすいでしょうか?
ありがとう、マルコム
解決
それはいけません。ウィジェットはそれをサポートしていません。
特定のアイテムを無効にすることはできません。ウィジェットは状態属性をサポートしていません。そうは言っても、ユーザーが無効になっているものを選択した場合、選択を監視し、適切なことを行うことができ、アイテムの前面を使用して障害のあるものを示すことができます。
キープレスイベントにバインドし、自分で動作を管理する必要があります。それは特に難しくなく、少し退屈です。
テキストウィジェットは最善の策かもしれませんが、リストボックスのデフォルトのバインディングを模倣するためにバインディングを追加する必要があります。
結論:TKINTERは、やりたいことを直接サポートするものを提供しませんが、ビルディングブロックはすべてそこにあります。あなたはそれを自分で構築する必要があります。