如何将子菜单添加到 Gtk 菜单
How to add a sub-menu to a Gtk Menu
我的应用程序中有一个 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)
您需要:
- 创建一个
Gtk.Menu
表示子菜单
- 在父菜单中创建
Gtk.MenuItem
- 使用
gtk.MenuItem.set_submenu
将子菜单附加到菜单项
类似于:
item = Gtk.MenuItem("Submenu")
self.menu.append(item)
self.sub_menu = Gtk.Menu()
item.set_submenu(self.sub_menu)
菜单只能附加到菜单项,菜单项只能添加到菜单或菜单栏。
您想要的层次结构是:
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)
只能使用 set_submenu() 附加菜单对象。
只能使用 append() 附加 MenuItem。
我的应用程序中有一个 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)
您需要:
- 创建一个
Gtk.Menu
表示子菜单 - 在父菜单中创建
Gtk.MenuItem
- 使用
gtk.MenuItem.set_submenu
将子菜单附加到菜单项
类似于:
item = Gtk.MenuItem("Submenu")
self.menu.append(item)
self.sub_menu = Gtk.Menu()
item.set_submenu(self.sub_menu)
菜单只能附加到菜单项,菜单项只能添加到菜单或菜单栏。
您想要的层次结构是:
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)
只能使用 set_submenu() 附加菜单对象。
只能使用 append() 附加 MenuItem。