pyqt5 list列表鼠标点击怎么实现
时间: 2023-11-18 12:04:31 浏览: 38
实现列表鼠标点击操作,可以通过继承 `QListWidget` 类并重写 `mousePressEvent` 方法来实现。具体实现步骤如下:
1. 创建一个自定义的 `ListWidget` 类,继承自 `QListWidget`。
```python
from PyQt5.QtWidgets import QListWidget, QListWidgetItem
class ListWidget(QListWidget):
def __init__(self, parent=None):
super().__init__(parent)
```
2. 重写 `mousePressEvent` 方法,捕获鼠标点击事件。
```python
class ListWidget(QListWidget):
def __init__(self, parent=None):
super().__init__(parent)
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
item = self.itemAt(event.pos())
if item is not None:
print(item.text())
super().mousePressEvent(event)
```
在 `mousePressEvent` 方法中,首先判断鼠标点击的是左键,然后获取当前点击的项,最后输出项的文本内容。
完整代码示例:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem
class ListWidget(QListWidget):
def __init__(self, parent=None):
super().__init__(parent)
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
item = self.itemAt(event.pos())
if item is not None:
print(item.text())
super().mousePressEvent(event)
if __name__ == '__main__':
app = QApplication([])
widget = ListWidget()
widget.addItem(QListWidgetItem("Item 1"))
widget.addItem(QListWidgetItem("Item 2"))
widget.addItem(QListWidgetItem("Item 3"))
widget.show()
app.exec_()
```
运行程序后,单击列表项可以在控制台中输出对应项的文本内容。