python右键弹出菜单编写_python-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,

ps:我没有添加“#FIX ME:为什么不起作用?”.实际上包含在示例中

该代码不起作用.即使我取出第二个功能并仅保留第一个功能,也无法使用.

任何帮助,将不胜感激,谢谢.

解决方法:

我找到了解决方案.

>您需要声明一个初始化函数.

>必须对上面的示例进行一些变量名更改

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,

标签:gtk,gnome,nautilus,python

来源: https://codeday.me/bug/20191210/2101355.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值