Na ContextMenu a sublevels

0

Otázka

Som schopný vytvoriť ContextMenu s úrovňou a prvý podlahoviny. Snažil som sa pridať viac sublevels, ale nemôžem. Som hľadal na Internete na dlhý čas nájsť niekoľko príkladov, ale nič. V mojom príklade, ako by som mal zmeniť kód, ak chcete pridať 'Brenda' voľbu v druhom podlahoviny? Prosím, pozrite sa na obrázok. Vďaka.

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

Najlepšiu odpoveď

1

Nemalo by to byť ako dosiahnuť tretej menu vrstvy?

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

V iných jazykoch

Táto stránka je v iných jazykoch

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