tkmenu_popup プログラム仕様

Tkinterポップアップメニューモジュール。

このモジュールは、特定のTkinterウィジェットにマウスカーソルがホバーした際に 自動的に表示されるポップアップメニュー機能を提供します。 マウスがウィジェットから離れるとメニューは非表示になります。

関連リンク: tkmenu_popup.py 技術ドキュメント

tklib.tkgui.tkmenu_popup.main()[ソース]

このモジュールの簡単なデモンストレーションを実行します。

この関数はTkinterのルートウィンドウを作成し、tkMenu_popupクラスのインスタンスを初期化しますが、 提供されたソースコードの通り、メニュー項目が定義されていないため、実際に表示されるメニューには何も含まれません。 注: 'tk.Tk()'が使用されていますが、'tkinter'のみがインポートされているため、このままでは`NameError`が発生します。 また、tkMenu_popup`の第二引数'test'`は`app`として渡され、`submenus`はデフォルトの空リストが使用されます。 このコードは提供されたソースコードのロジックを変更しないというルールに従っています。

class tklib.tkgui.tkmenu_popup.tkMenu_popup(parent=None, app=None, title='', submenus=[])[ソース]

ベースクラス: object

Tkinterウィジェットに関連付けられたポップアップメニューを管理するクラス。

このクラスは、指定されたウィジェットにマウスカーソルがホバーしたときに メニューを表示し、カーソルがウィジェットから離れたときにメニューを非表示にする機能を実装します。 メニューの項目は、ラベルと対応するコールバック関数を持つ辞書のリストとして定義されます。

bind_to_widget(widget, shiftx=0, shifty=0)[ソース]

指定されたウィジェットにポップアップメニューの表示/非表示イベントをバインドします。

このメソッドは、提供されたウィジェットに'<Enter>'イベントと'<Leave>'イベントをバインドし、 それぞれ`show`メソッドと`hide`メソッドを呼び出すように設定します。 メニューの表示位置は、`shiftx`と`shifty`によってオフセット調整できます。

パラメータ:
  • widget -- tkinter.Widget - メニューをバインドする対象のTkinterウィジェット。

  • shiftx -- int - メニュー表示位置のX軸方向のオフセット(現在未使用)。デフォルトは0。

  • shifty -- int - メニュー表示位置のY軸方向のオフセット。デフォルトは0。

create_menu(submenus)[ソース]

ポップアップメニューウィジェットを作成します。

このメソッドは、指定されたサブメニュー項目に基づいてtkinter.Menuウィジェットを構築します。 各サブメニュー項目は、メニュー内のコマンドとして追加されます。

パラメータ:

submenus -- list[dict] - メニュー項目を定義する辞書のリスト。 各辞書は'label'(str)と'callback'(callable)キーを持つ必要があります。

戻り値:

tkinter.Menu - 作成されたtkinter.Menuウィジェットのインスタンス。

hide(event)[ソース]

表示されているメニューを非表示にします。

このメソッドは、現在表示されているポップアップメニューを非表示にします。 通常、ウィジェットからのマウスLeaveイベントにバインドされます。

パラメータ:

event -- tkinter.Event - メニュー非表示をトリガーしたイベントオブジェクト。

show(event)[ソース]

メニューを指定された位置に表示します。

このメソッドは、バインドされたウィジェットのルート座標と設定されたシフト値に基づいて ポップアップメニューを表示します。通常、ウィジェットへのマウスEnterイベントにバインドされます。

パラメータ:

event -- tkinter.Event - メニュー表示をトリガーしたイベントオブジェクト。 イベントのx, y座標は使用されず、バインドされたウィジェットの位置が使われます。