1

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 ベースのメニュー作成プロセスを使用して、時間を節約し、保守性と読みやすさを向上させようとしています。

  1. GMenu を作成する
  2. GMenuItems のリストを作成する
  3. 感度、ツールチップなどのさまざまなプロパティを設定します
  4. 信号イベントを接続する

以前は、次のようなことを単純に行いました。

ui = Gtk.Builder()
ui.add_from_file("menufile.xml")
ui.connect_signals(self)
popup_menu = ui.get_object('popup_menu')

などなど

これは GMenu と GMenuItems で可能ですか?

もしそうなら、誰かがPythonコードサンプルの例や既存のPythonコードへのリンクを使って正しい方向に向けることができますか?

4

1 に答える 1

1

C の場合、bloatpad の例は、GtkBuilder ファイルで使用できる新しい XML 形式を示しています: https://git.gnome.org/browse/gtk+/tree/examples/bloatpad.c

ただし、これらは手書きで書かなければなりません。Glade ではまだ GMenus を編集できず、ノードをサイレントに削除するだけです。

于 2013-10-02T09:22:37.377 に答える