4

私は Tkinter Listbox ウィジェットを研究していますが、次の機能の解決策を見つけることができませんでした:

  1. 選択できない水平区切り項目を作成するにはどうすればよいですか。Tkinter メニューウィジェットの .add_separator() と同等のセパレーター? (ダッシュやアンダースコアなどの文字を使用すると見栄えが悪くなります)。

  2. 特定のアイテムを無効にするにはどうすればよいですか? .itemconfig( index, state='disabled' ) を使用してみましたが成功しませんでした。

  3. キーボード ナビゲーションを有効にするにはどうすればよいですか。ユーザーのキーボード入力が、ユーザーが入力したテキストで始まる最も近い項目に自動的に 1 つ前方にスクロールするとき? bind(<KeyPress>, ...)この動作を自分で管理する必要がありますか?

  4. 上記の機能のいくつかは、テキスト ウィジェットまたはウィジェットを使用して実装する方が簡単ttk.Treeviewですか?

4

1 に答える 1

5
  1. それはいけません。ウィジェットはそれをサポートしていません。

  2. 特定のアイテムを無効にすることはできません。ウィジェットは状態属性をサポートしていません。そうは言っても、選択を監視し、ユーザーが無効になっているものを選択した場合は適切な処理を行い、アイテムの前景を使用して無効であることを示すことができます。

  3. キープレス イベントにバインドし、自分で動作を管理する必要があります。特に難しいことはありませんが、少し面倒です。

  4. リストボックスのデフォルトのバインディングを模倣するためにバインディングを追加する必要がありますが、テキスト ウィジェットが最善の策かもしれません。

結論: Tkinter は、やりたいことを直接サポートするものは何も提供しませんが、ビルディング ブロックはすべてそこにあります。自分でビルドするしかありません。

于 2010-11-10T03:43:40.127 に答える