문제

Nautilus의 확장자를 쓰려고합니다. 파일을 마우스 오른쪽 버튼으로 클릭 할 때 나타나는 메뉴에 항목을 추가합니다 (이미지에 표시).

alt text

그러나 사용자 정의 메뉴 항목에 하위 메뉴를 추가하고 싶습니다.

나는 '노틸러스-파이썬'패키지를 다운로드했습니다. 여기에는 노틸러스에 대한 확장 방법을 작성하는 방법에 대한 예가 포함되어 있습니다 (지금까지 내가 찾은 최고의/유일한 문서로 판명되었습니다). 그것에서, 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,

추신 : "# 수정 : 왜 작동하지 않습니까?"를 추가하지 않았습니다. 그것은 실제로 예제에 포함되어 있습니다

코드가 작동하지 않습니다. 두 번째 기능을 꺼내 첫 번째 기능 만 남겨더라도 작동하지 않습니다.

도움을 주셔서 감사합니다. 감사합니다.

도움이 되었습니까?

해결책

솔루션을 찾았습니다.

  1. 당신은 필요합니다 이니 기능이 선언되었습니다.
  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,
    
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top