pyside6 QlistWidget鼠标右键菜单 怎么实现
时间: 2023-04-03 12:01:29 浏览: 396
你可以通过以下代码实现 pyside6 QlistWidget 的鼠标右键菜单:
```
from PySide6.QtWidgets import QMenu, QListWidget, QListWidgetItem
class MyListWidget(QListWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.showContextMenu)
def showContextMenu(self, pos):
item = self.itemAt(pos)
if item:
menu = QMenu()
menu.addAction("Action 1")
menu.addAction("Action 2")
menu.addAction("Action 3")
menu.exec_(self.mapToGlobal(pos))
```
在这个代码中,我们创建了一个自定义的 QListWidget 类 MyListWidget,并在其中实现了鼠标右键菜单的功能。具体来说,我们通过设置 setContextMenuPolicy(Qt.CustomContextMenu) 来启用自定义的上下文菜单,并通过 customContextMenuRequested 信号连接 showContextMenu 方法。在 showContextMenu 方法中,我们首先获取鼠标右键点击的 item,然后创建一个 QMenu 对象,并添加三个 QAction 对象。最后,我们通过 menu.exec_(self.mapToGlobal(pos)) 来显示菜单。
阅读全文