pyqt6 listwidget 鼠标右键上下文菜单
时间: 2024-08-12 11:05:49 浏览: 68
PyQt6中的QListWidget是一个用于显示列表项目的控件,它支持用户通过鼠标右键点击(即上下文菜单)来快速访问常见的操作。在创建QListWidget时,你可以自定义其上下文菜单,以便提供一些特定的功能,比如添加、删除项目、复制、移动等。
下面是一个简单的例子展示如何在PyQt6中设置QListWidget的右键上下文菜单:
```python
from PyQt6.QtWidgets import QApplication, QMainWindow, QListWidget, QAction, QMenu
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.list_widget = QListWidget()
self.setCentralWidget(self.list_widget)
# 创建上下文菜单
context_menu = QMenu()
# 添加菜单项
add_item_action = QAction('添加', self)
remove_item_action = QAction('删除', self)
copy_item_action = QAction('复制', self)
move_item_action = QAction('移动', self)
# 连接信号槽,当动作被触发时执行相应的操作
add_item_action.triggered.connect(self.add_item)
remove_item_action.triggered.connect(self.remove_item)
copy_item_action.triggered.connect(self.copy_item)
move_item_action.triggered.connect(self.move_item)
# 将菜单项添加到上下文菜单
context_menu.addAction(add_item_action)
context_menu.addAction(remove_item_action)
context_menu.addAction(copy_item_action)
context_menu.addAction(move_item_action)
# 设置右键点击事件处理器
self.list_widget.setContextMenuPolicy(Qt.ContextMenuPolicy.ActionsContextMenu)
self.list_widget.customContextMenuRequested.connect(lambda pos: context_menu.exec(pos))
def add_item(self):
print("添加项目")
def remove_item(self):
print("删除选中的项目")
def copy_item(self):
print("复制选中的项目")
def move_item(self):
print("移动选中的项目")
if __name__ == '__main__':
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在这个例子中,当你在QListWidget上右键点击时,会弹出一个包含预定义操作的菜单。用户可以根据需要选择执行相应操作。
阅读全文