Glade を使用して、Gtk3.4/3.6 ベースのアプリのメニューバーにアプリケーション メニューを次のように作成しました。
<object class="GtkMenu" id="popup_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkMenuItem" id="play_album_menu_item">
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Play this album</property>
<property name="label" translatable="yes">Play Album</property>
<property name="use_underline">True</property>
<signal name="activate" handler="play_album_menu_item_callback" swapped="no"/>
</object>
</child>
ただし、最新の Gnome ベースの GTK3.8 アプリケーションは、GtkMenu/UI-Manager ベースのメニュー作成から離れ、GMenu および GMenuItem ベースの作成を使用するようになりました。
メニュー項目を個別にコーディングする方法を説明する Python コード例を見てきました。
ただし、同様の Glade XML ベースのメニュー作成プロセスを使用して、時間を節約し、保守性と読みやすさを向上させようとしています。
- GMenu を作成する
- GMenuItems のリストを作成する
- 感度、ツールチップなどのさまざまなプロパティを設定します
- 信号イベントを接続する
以前は、次のようなことを単純に行いました。
ui = Gtk.Builder()
ui.add_from_file("menufile.xml")
ui.connect_signals(self)
popup_menu = ui.get_object('popup_menu')
などなど
これは GMenu と GMenuItems で可能ですか?
もしそうなら、誰かがPythonコードサンプルの例や既存のPythonコードへのリンクを使って正しい方向に向けることができますか?