我正在尝试为nautilus编写一个扩展程序,它会在右键单击文件时显示的菜单中添加项目(如图所示)
但是,我想在我的自定义菜单项中添加一个子菜单。
我下载了一个'nautilus-python'软件包,其中包含如何为Nautilus编写扩展的示例(到目前为止,它是我发现的最好/唯一的文档)。在其中,是一个名为submenu.py的文件,其中包含以下内容:
import nautilus
class ExampleMenuProvider(nautilus.MenuProvider):
def get_file_items(self, window, files):
menuitem = nautilus.MenuItem('ExampleMenuProvider::Foo', 'Foo', '')
submenu = nautilus.Menu()
menuitem.set_submenu(submenu)
menuitem = nautilus.MenuItem('ExampleMenuProvider::Bar','Bar','')
submenu.append_item(menuitem)
return menuitem,
# FIXME: Why isn't this working?
def get_background_items(self, window, file):
submenu = nautilus.Menu()
submenu.append_item(nautilus.MenuItem('ExampleMenuProvider::Bar', 'Bar', ''))
menuitem = nautilus.MenuItem('ExampleMenuProvider::Foo', 'Foo', '')
menuitem.set_submenu(submenu)
return menuitem,
ps:我没有添加“#FIX ME:为什么这不起作用?”。这实际上包含在示例中
代码不起作用。即使我拿出第二个功能而只留下第一个功能,它也不起作用。
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:3)
我找到了解决方案。
必须对上面的示例进行一些变量名称更改
import nautilus
class ExampleMenuProvider(nautilus.MenuProvider):
def __init__(self):
pass
def get_file_items(self, window, files):
submenu = nautilus.Menu()
item = nautilus.MenuItem('Nautilus::sbi','Nau-T','image')
item.set_submenu(submenu)
item_two = nautilus.MenuItem('Nautilus::s','www','image')
submenu.append_item(item_two)
return item,