有谁知道如何在pygtk中评论MenuItem?
我试图将ALT+F4
添加到退出的右侧。
非常感谢任何帮助。
#!/usr/bin/env python
import gtk
class MenuBar(gtk.Window):
def __init__(self):
super(MenuBar, self).__init__()
self.set_position(gtk.WIN_POS_CENTER)
self.set_title("MenuBar")
self.set_size_request(320, 75)
self.set_keep_above(False)
self.connect("destroy", gtk.main_quit, "WM destroy")
mb = gtk.MenuBar()
filemenu = gtk.Menu()
filem = gtk.MenuItem("File")
filem.set_submenu(filemenu)
exit = gtk.MenuItem("Exit")
exit.connect("activate", gtk.main_quit)
filemenu.append(exit)
mb.append(filem)
vbox = gtk.VBox(False, 0)
vbox.pack_start(mb, False, False, 0)
self.add(vbox)
label = gtk.Label('An easy, but simple menubar!')
vbox.pack_start(label, False, False, 10)
self.show_all()
MenuBar()
gtk.main()
答案 0 :(得分:2)
我刚刚遇到同样的问题(好吧,几天前)。根据我的学习,有一个新级别的抽象调用GtkActionGroup。
所以,'遗产' (或旧:)做菜单的方法是通过逐个定义项目并附加处理程序来定义它们的方式(我也是)。这很好,直到你达到加速器的必要性。
' new'方法是定义程序中所需的所有操作(独立于激活它们的方式),按相关功能分组(因此' group' ed),然后将每个菜单项连接到相应的操作。在习惯之后, 非常方便,因为这意味着您不必重复工具栏的所有工作。您只需定义每个工具按钮,并将其链接到同一个操作。而且你只需要定义一次动作(而不是一次作为快捷方式,一次在菜单中,一次在工具栏中,谁知道在哪里)。
我理解这是因为gtk维护了一个全局加速器映射。
http://faq.pygtk.org/index.py?req=show&file=faq11.008.htp简单地展示了如何创建动作。 http://python-gtk-3-tutorial.readthedocs.org/en/latest/menus.html是一个更完整(且复杂)的如何制作菜单的例子。
与gtktextviews和gtktreeviews一样,菜单不会变得更简单......但它主要是对变革的抵制。