pyqt5 Qwidget中的list列表鼠标点击怎么实现
时间: 2023-06-12 14:08:02 浏览: 152
PyQt5 QLabel实现自定义鼠标点击事件
5星 · 资源好评率100%
可以通过继承 `QListWidget` 类来实现列表鼠标点击事件的处理。具体步骤如下:
1. 创建一个继承自 `QListWidget` 的子类;
2. 重写 `mousePressEvent` 方法,在该方法中处理鼠标点击事件。
以下是示例代码:
```python
from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem
class MyListWidget(QListWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.addItem("Item 1")
self.addItem("Item 2")
self.addItem("Item 3")
self.addItem("Item 4")
def mousePressEvent(self, event):
if event.button() == 1: # 左键单击
item = self.itemAt(event.pos())
if item is not None:
print(item.text())
if __name__ == '__main__':
app = QApplication([])
widget = MyListWidget()
widget.show()
app.exec_()
```
在上述代码中,我们创建了一个 `MyListWidget` 类,继承自 `QListWidget`。在构造函数中,我们添加了一些测试数据,用于演示列表的显示。
然后,我们重写了 `mousePressEvent` 方法,在该方法中判断鼠标点击事件的类型,如果是左键单击,则获取当前鼠标位置所在的列表项,并输出该项的文本信息。
最后,我们创建了一个应用程序对象,并将 `MyListWidget` 实例添加到该应用程序中,并调用 `exec_()` 方法启动应用程序。
阅读全文