自定义右键菜单放在表格内部
时间: 2023-07-28 12:09:59 浏览: 103
JS自定义右键菜单
要将自定义右键菜单放在表格内部,可以使用QTableWidget的customContextMenuRequested信号。当用户右键单击表格时,该信号将发出,并且可以在其中创建和显示自定义菜单。
下面是一个示例代码,演示如何在表格内部放置自定义右键菜单:
``` python
from PyQt5.QtWidgets import QTableWidget, QMenu, QTableWidgetItem
from PyQt5.QtCore import QPoint
class MyTableWidget(QTableWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.showContextMenu)
def showContextMenu(self, pos):
# 创建一个菜单
menu = QMenu(self)
# 添加菜单项
action1 = menu.addAction("菜单项1")
action2 = menu.addAction("菜单项2")
# 显示菜单
selected_action = menu.exec_(self.mapToGlobal(pos))
# 根据用户选择执行相应操作
if selected_action == action1:
print("执行菜单项1")
elif selected_action == action2:
print("执行菜单项2")
```
在这个示例中,我们创建了一个自定义表格小部件MyTableWidget,并重写了它的showContextMenu方法。当用户右键单击表格时,我们将创建一个QMenu对象,并向其中添加两个菜单项。最后,我们将菜单显示在用户单击的位置,并根据用户的选择执行相应的操作。
阅读全文