GtkMenu的动态创建
使用glade多了,就不太会动态创建菜单,但有时又是必须的,比如recent files菜单就不能用glade创建,下面是大概的python代码示例:
recentmi = gtk.MenuItem("Recent Files")
ui_recentfile = gtk.Menu()
recentmi.set_submenu( ui_recentfile )
filemenu.insert(recentmi, 8)
这是创建了一个子菜单,并插入在file菜单下的一个固定位置,下面是往子菜单里面加入菜单项:
mi = gtk.MenuItem( onefile)
mi.connect( "activate" , self.on_recent_file_open, onefile)
ui_recentfile.add(mi)
connect时候,这里用了一个user参数来传文件名,这个参数就可以在菜单点击时传给消息处理函数,这样这个消息处理函数就可以很容易区分是点击了哪个文件了。
如果想删除菜单项的话,可以调gtkMenu的remove接口,但是似乎不能按位置删除。
recentmi = gtk.MenuItem("Recent Files")
ui_recentfile = gtk.Menu()
recentmi.set_submenu( ui_recentfile )
filemenu.insert(recentmi, 8)
这是创建了一个子菜单,并插入在file菜单下的一个固定位置,下面是往子菜单里面加入菜单项:
mi = gtk.MenuItem( onefile)
mi.connect( "activate" , self.on_recent_file_open, onefile)
ui_recentfile.add(mi)
connect时候,这里用了一个user参数来传文件名,这个参数就可以在菜单点击时传给消息处理函数,这样这个消息处理函数就可以很容易区分是点击了哪个文件了。
如果想删除菜单项的话,可以调gtkMenu的remove接口,但是似乎不能按位置删除。

0 Comments:
发表评论
<< Home