创建右键单击菜单pyQT Maya

时间:2018-10-05 05:12:49

标签: python pyqt maya pyside2

我目前正在学习/将Maya.cmds GUI转换为PYQT。学习如何创建“弹出菜单”时遇到了一些问题

QPushButton上的Maya弹出菜单示例

Maya.cmds中,这曾经是我的第二天性,但是自从移至Qt以来,我很难找到有关此的任何信息。我想在此“弹出菜单”中添加复选框,径向选择和QLineEdit

1 个答案:

答案 0 :(得分:0)

这是我汇总的一个工作版本,我们使用自定义上下文菜单来显示带有所有菜单项的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()