def open_new_shader_menu(): """ Open menu using QMenu with all maps :return: """ try: from PySide.QtGui import QMenu, QAction, QCursor except: from PySide2.QtGui import QCursor from PySide2.QtWidgets import QMenu, QAction maps = SuperShader._get_maps() if not maps: return menu = QMenu(hou.ui.mainQtWindow()) menu.setStyleSheet(hou.ui.qtStyleSheet()) for m in maps: if m.get('allow_creation'): menu.addAction(QAction(m['name'], menu)) act = menu.exec_(QCursor.pos()) if not act: return new_shader_map = ([x for x in maps if x['name'] == act.text()] or [None])[0] return new_shader_map