Reputation: 125
I am able to create a ContextMenu with a level and a first sublevel. I was trying to add more sublevels but I can't. I searched the Internet for a long time to find some examples, but nothing. In my example, how should I modify the code to add the 'Brenda' option in the second sublevel? Please look at the picture. Thanks.
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")
Upvotes: 0
Views: 41
Reputation: 4197
Shouldn't this be how to achieve a third menu layer?
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")
Upvotes: 1