gpt4 book ai didi

python - Nautilus 右键单击​​菜单中的子菜单项

转载 作者:行者123 更新时间:2023-11-28 16:54:47 36 4
gpt4 key购买 nike

我正在尝试为 nautilus 编写一个扩展,它将一个项目添加到右键单击文件时出现的菜单中(如图所示)

alt text

但是,我想向我的自定义菜单项添加一个子菜单。

我下载了一个“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:为什么这不起作用?”。这实际上包含在示例中

代码无效。即使我去掉第二个函数而只留下第一个函数,它也不起作用。

如有任何帮助,我们将不胜感激。

最佳答案

我找到了解决方案。

  1. 您需要声明一个init函数。
  2. 必须对上面的示例进行一些变量名更改

    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,

关于python - Nautilus 右键单击​​菜单中的子菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1845681/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com