1
我一直在使用格萊德創建菜單欄我的應用程序菜單的Gtk3.4/3.6基於應用程序是這樣的:有沒有一種等同的方式來從XML加載GMenu?
<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代碼例子說明如何單獨代碼菜單項。
但是我想節省時間/試圖通過使用類似的格萊德基於XML的菜單創建過程中提高可維護性&可讀性:
- 創建GMenu
- 創建一個GMenuItems列表
- 設置各種屬性,如sensitivi TY,工具提示
- 連接的信號事件
以前我壓根兒東西,如:
ui = Gtk.Builder()
ui.add_from_file("menufile.xml")
ui.connect_signals(self)
popup_menu = ui.get_object('popup_menu')
etc.etc。
這可能與GMenu和GMenuItems?
如果是這樣,任何人都可以通過示例Python代碼示例或現有Python代碼鏈接指向正確的方向嗎?
鏈接已移動,https://git.gnome.org/browse/gtk+/tree/examples/bp/gtk/menus.ui和https://git.gnome.org/browse/gtk+/tree/examples/ BP/bloatpad.c – 2014-07-14 19:26:11