pyqtQListWidget添加右键菜单
时间: 2023-10-24 10:05:10 浏览: 35
可以通过以下代码实现:
```python
from PyQt5.QtWidgets import QListWidget, QMenu, QAction
from PyQt5.QtCore import QPoint
class MyListWidget(QListWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setContextMenuPolicy(Qt.CustomContextMenu) # 允许右键菜单
self.customContextMenuRequested.connect(self.showContextMenu) # 显示右键菜单
self.initUI()
def initUI(self): # 添加条目
self.addItem('苹果')
self.addItem('橘子')
self.addItem('香蕉')
def showContextMenu(self, pos): # 显示右键菜单
item = self.itemAt(pos) # 获取当前位置的条目
if item:
menu = QMenu(self) # 创建菜单
delete_action = QAction('删除', self) # 创建删除条目的动作
delete_action.triggered.connect(lambda: self.takeItem(self.row(item))) # 连接删除动作的槽函数,删除对象的行号
menu.addAction(delete_action) # 添加动作到菜单
menu.exec_(self.mapToGlobal(pos)) # 显示菜单
if __name__ == '__main__':
app = QApplication(sys.argv)
win = MyListWidget()
win.show()
sys.exit(app.exec_())
```
以上代码可以创建一个带有右键菜单的列表控件,并且可以添加、删除条目。您可以根据自己的需要修改并应用到您的程序中。