0

Python と Tkinter でソフトウェアを作成することを学んでいます。さまざまな条件に合わせてメニュー項目を変更する必要がありますが、簡単な方法が見つかりませんでした。さて、例を使用して私の質問を明確に説明してみましょう。

ここに画像の説明を入力

図に示すように、左側にリストボックス、右側にリストボックスがあります。アイテムを移動するためのメニューもあります。コマンドは「右に移動」、「左に移動」、「交換」です。次の条件が考慮されます。

  1. 左のリストボックスで選択されたアイテムのみを取得する場合、図に示すように、「右に移動」コマンドのみを有効にします。
  2. 右のリストボックスで選択されたアイテムのみを取得する場合、「左に移動」コマンドのみを有効にしたい。
  3. 両方のリストボックスで項目を選択したら、すべてのコマンドを有効にします。
  4. アイテムが選択されていない場合は、すべてのコマンドを無効にします。

イベント「ListboxSelect」と「Button-1」をいくつかの関数にバインドし、関数を使用してメニューを構成することで作業を完了できることを知っています。しかし、実際のソフトウェアで 5 つのリストボックスを使用すると、非常に複雑な作業になります。したがって、tkinter.Menu クラスでいくつかの関数をオーバーロードするなど、これを行う簡単な方法があるかどうか疑問に思っています (post()、grid()、pack()、および place() をオーバーロードしようとしましたが、どれも機能しません)。

どんなアイデアでも大歓迎です。

4

1 に答える 1