qtablewidget右键菜单弹出两次
时间: 2024-01-19 18:03:41 浏览: 105
Qt实现鼠标右击弹出菜单
5星 · 资源好评率100%
根据提供的引用内容,可以通过以下步骤解决QTableWidget右键菜单弹出两次的问题:
1. 确保只在鼠标右键按下时弹出右键菜单。可以通过重写QTableWidget的`contextMenuEvent`方法来实现。
```python
class MyTableWidget(QTableWidget):
def contextMenuEvent(self, event):
if event.reason() == QContextMenuEvent.Mouse:
# 弹出右键菜单的代码
menu = QMenu(self)
# 添加菜单项
menu.addAction("菜单项1")
menu.addAction("菜单项2")
# 显示菜单
menu.exec_(event.globalPos())
```
2. 确保只在鼠标右键按下时触发相应的操作。可以通过判断`event.reason()`是否为`QContextMenuEvent.Mouse`来实现。
```python
class MyTableWidget(QTableWidget):
def contextMenuEvent(self, event):
if event.reason() == QContextMenuEvent.Mouse:
# 执行相应的操作
print("执行操作")
```
这样,就可以确保右键菜单只在鼠标右键按下时弹出,并且只触发一次相应的操作。
阅读全文