python PyQt或Pyside中的弹出菜单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python PyQt或Pyside中的弹出菜单相关的知识,希望对你有一定的参考价值。

##Enable Right
self._category_table.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self._category_table.customContextMenuRequested.connect(self.show_category_table_Popup)

##Create Popup Menu
self._category_table_Popup = QtGui.QMenu(self)
self._category_table_Popup.addAction('Activate', lambda: self.changeStatus('table', 'Active'))
self._category_table_Popup.addAction('Ommit', lambda: self.changeStatus('table', 'Omitted'))
self._category_table_Popup.addAction('Delete', lambda: self.changeStatus('table', 'Delete'))

def show_category_table_Popup(self, point):
        '''
        Show Popup Menu on Category Table
        '''
        self._category_table_Popup.exec_(self._category_table.mapToGlobal(point))

def changeStatus(self, mode, status=None):
        '''
        Delete selected Files
        '''
        if mode == 'table':
            ## Grab selected row
            selectedRow = self._category_table.selectionModel().selectedRows()[0].row()

            ## Edit First Column
            item = self._category_table.item(selectedRow, 0)
            Util.changeTextTable(item, status)

            ## Edit Second Column
            item = self._category_table.cellWidget(selectedRow, 1)

            if status != 'Active':
                item.setEnabled(False)
            else:
                item.setEnabled(True)

        if mode == 'tree':
            item = self._asset_tree.currentItem()

            Util.changeTextTree(item, status)

以上是关于python PyQt或Pyside中的弹出菜单的主要内容,如果未能解决你的问题,请参考以下文章

PySide / PyQt QStyledItemDelegate 表中的列表

Python/pyside,pyqt(pyside,pyqt optional): 控制文本选择的函数

pyqt5应用程序中对话框和主窗口的国际化(翻译)

从 PySide 移动到 PyQt5 后图像不显示

带有 Pyside/PyQt 的径向菜单

PyQt 或 PySide - 使用哪一个 [关闭]