创建右键菜单pyQT Maya

Posted

技术标签:

【中文标题】创建右键菜单pyQT Maya【英文标题】:Create right click menu pyQT Maya 【发布时间】:2018-10-05 05:12:49 【问题描述】:

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

QPushButton 上的 Maya 弹出菜单示例

Maya.cmds 中,这对我来说是第二天性,但自从搬到 Qt 后,我​​在查找任何有关这方面的信息时遇到了问题。我想在这个“弹出菜单”中添加复选框、径向选择和QLineEdit

【问题讨论】:

这里的前五个链接:google.com/search?q=pyqt+maya 例如danostrov.com/2012/10/27/…, 我有点晚了,但是右键菜单并不是 Maya 特有的。搜索如何做一个 Qt 上下文菜单 谢谢,我已经找到了方法,很快就会发布答案。 【参考方案1】:

这是我整理的一个工作版本,我们正在使用自定义上下文菜单来显示我们的 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()

【讨论】:

以上是关于创建右键菜单pyQT Maya的主要内容,如果未能解决你的问题,请参考以下文章

pyqt 按钮怎么添加右键菜单

python pyqt5 QTableWidget 添加右键菜单

QComboBox的PyQt右键菜单

pyqt5的QListWidget中设置右键菜单

PyQt5 QTableWidget:右键选择列,并在上下文菜单中显示删除条目

PyQt5 QLabel自定义右键弹出菜单