如何将一个子菜单添加到一个GTK菜单

问题描述 投票:0回答:2

我在我的应用程序基于GTK菜单,我想添加一个子菜单。即,当单击主菜单项时,则应扩大的菜单项另一个列表(子菜单)。

我已经尝试了一些方法和他们不工作。该文件是在这个稀疏了。

这里是我的代码:

from gi.repository import Gtk

self.menu = Gtk.Menu()
item = Gtk.MenuItem()
item.set_label("Interfaces")
item.connect("activate", self.app.main_window.cb_show, '')
self.menu.append(item)

#Tried this way but it doesn't work.
# self.sub_menu = Gtk.Menu()
# self.menu.append(self.sub_menu)

item = Gtk.MenuItem()
item.set_label("Configuration")
item.connect("activate", self.app.config_window.cb_show, '')
self.menu.append(item)

self.menu.show_all()

我怎样才能做到这一点?

更新:

我尝试使用gtk.MenuItem.set_submenu,但它仍然无法正常工作。

    self.menu = Gtk.Menu()

    item = Gtk.MenuItem()
    item.set_label("Units")
    self.menu.append(item)

    self.sub_menu = Gtk.Menu()
    submenu_item = Gtk.MenuItem()
    submenu_item.set_label("item text")
    item.set_submenu(self.sub_menu)
python python-3.x gtk
2个回答
1
投票

你需要:

  1. 创建Gtk.Menu代表子菜单
  2. 创建父菜单Gtk.MenuItem
  3. 附加子菜单项与gtk.MenuItem.set_submenu

就像是:

item = Gtk.MenuItem("Submenu")
self.menu.append(item)
self.sub_menu = Gtk.Menu()
item.set_submenu(self.sub_menu)

1
投票

A菜单只能连接到一个菜单项和菜单项只能添加到菜单或菜单栏。

你想要的层次是:

menubar
    menuitem (sort of a menu header; it's got the label, "File" for instance)
       menu (the actual file menu)
         menuitem (such as "New")
           menu (actually a submenu)
              item ("Text" for instance)

A菜单对象只能使用set_submenu附()。

甲菜单项只能用附加附接()。

© www.soinside.com 2019 - 2024. All rights reserved.