Создать контекстное меню pyQT Maya - PullRequest
0 голосов
/ 05 октября 2018

В настоящее время я изучаю / преобразовываю мой Maya.cmds GUI в PYQT.Я столкнулся с некоторыми проблемами, изучая, как создавать "всплывающие меню"

Пример всплывающего меню Maya на QPushButton

Это используется, чтобы быть второй натуроймне в Maya.cmds, но после перехода на Qt у меня возникают проблемы с поиском какой-либо информации об этом.Я хотел бы добавить флажки, радиальные выделения и QLineEdit внутри этого «всплывающего меню».

1 Ответ

0 голосов
/ 21 ноября 2018

Вот рабочая версия, которую я собрал, мы используем пользовательское контекстное меню, чтобы показать наше Qmenu со всеми нашими пунктами меню.

class MainWindow(QtWidgets.QDialog):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setWindowTitle("MainWindow")

    #   C R E A T E   L A Y O U T
        mainLayout = QtWidgets.QVBoxLayout()
        self.setLayout(mainLayout)

    #   C R E A T E   B U T T O N
        self.btn = QtWidgets.QPushButton('Right Click Me!')
        mainLayout.addWidget(self.btn)

    #   C O N N E C T   P O P U P   M E N U   T O   O U R   B U T T O N
        self.btn.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.btn.customContextMenuRequested.connect(self.showPopup)

    #   M E N U   I T E M S
        self.popupMenu = QtWidgets.QMenu()
        self.PBSaveFileCB = self.popupMenu.addAction("Click")


    #   S H O W   P O P U P   M E N U
    def showPopup(self,position):
         self.popupMenu.exec_(self.btn.mapToGlobal(position))

def showUI():
    ui = MainWindow()
    ui.show()
    return ui

ui = showUI()
...