ContextMenu e sottolivelli

0

Domanda

Io sono in grado di creare un ContextMenu con un livello e un primo piano interrato. Stavo cercando di aggiungere più livelli, ma non posso. Ho cercato su Internet per un lungo periodo di tempo per trovare alcuni esempi, ma niente. Nel mio esempio, come devo modificare il codice per aggiungere il 'Brenda' opzione del secondo sottolivello? Si prega di guardare le foto. Grazie.

ContextMenu Image

def contextMenuEvent(self,event):

    menu = QMenu(self)

    Option1 = menu.addAction("Paul")

    Option2 = QMenu("Richard")
    Option2_1 = Option2.addAction("Frida")
    Option2_2 = Option2.addAction("Susan")
    menu.addMenu(Option2)

    Option3 = menu.addAction("Thomas")

    action = menu.exec_(self.mapToGlobal(event.pos()))
    if action == Option1:
        print("Paul")
    elif action == Option2_1:
        print("Frida")
    elif action == Option2_2:
        print("Susan")
    elif action == Option3:
        print("Thomas")
contextmenu levels pyqt5 python
2021-11-22 15:28:32
1

Migliore risposta

1

Non dovrebbe essere questo il modo per ottenere un terzo livello del menu?

def contextMenuEvent(self,event):

    menu = QMenu(self)

    Option1 = menu.addAction("Paul")

    Option2 = QMenu("Richard")
    Option2_1 = Option2.addAction("Frida")
    Option2_2 = QMenu("Susan") # define a new menu, not an action
    Option2_2_1 = Option2_2.addAction("Brenda") # add sub menu item
    Option2.addMenu(Option2_2) # add menu to Option2 menu
    menu.addMenu(Option2)

    Option3 = menu.addAction("Thomas")

    action = menu.exec_(self.mapToGlobal(event.pos()))
    if action == Option1:
        print("Paul")
    elif action == Option2_1:
        print("Frida")
    elif action == Option2_2:
        print("Susan")
    elif action == Option3:
        print("Thomas")
2021-11-22 15:47:11

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................