I want to make my own menu bar. I have found a way to add actions to a QPushButton:
Source: https://www.youtube.com/watch?v=Aj-Q8pu_HG0
def add_menu(data,menu_obj):
if isinstance(data,dict):
for k,v in data.items():
sub_menu = QtWidgets.QMenu(k,menu_obj)
menu_obj.addMenu(sub_menu)
add_menu(v,sub_menu)
elif isinstance(data,list):
for element in data:
add_menu(element,menu_obj)
else:
print(data)
action = menu_obj.addAction(data)
#action.setIconVisibleInMenu(False)
if action == "load":
action.triggered.connect(lambda : print("load"))
elif action == "new":
action.triggered.connect(lambda : print("new"))
elif action == "save":
action.triggered.connect(lambda : print("save"))
file_menu = [
"new","load","save"
]
menu = QtWidgets.QMenu()
menu.setStyleSheet(menu_style)
self.pushButton_file.setMenu(menu)
add_menu(file_menu,menu)
However, I am not able to add functions to specific items. What I would ideally be able to do is:
self.menuitem_new.triggered.connect(lambda:print("NEW")).
Is that possible ?