Nautilus右键菜单中的子菜单项
我正在尝试为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,
顺便说一下,我没有加上“# FIX ME: 为什么这个不工作?”这句话,实际上它是示例中包含的。
但是,这段代码并没有正常工作。即使我把第二个函数去掉,只留下第一个,它也还是不行。
如果有人能帮帮我,我会非常感激,谢谢。
1 个回答
4
我找到了解决办法。
- 你需要声明一个 init 函数。
我需要对上面的例子做一些变量名称的修改。
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,