QlistView的图标单击事件
时间: 2023-10-06 16:09:29 浏览: 36
可以使用QListView的`clicked`信号来响应图标的单击事件。该信号会传递一个QModelIndex对象,该对象表示被单击的项的位置信息。我们可以使用这个位置信息来获取项的数据和图标。
以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QListView
from PyQt5.QtGui import QIcon, QStandardItemModel, QStandardItem
from PyQt5.QtCore import Qt
class MyListView(QListView):
def __init__(self):
super().__init__()
model = QStandardItemModel(self)
for i in range(10):
item = QStandardItem(QIcon("icon.png"), "Item {}".format(i+1))
model.appendRow(item)
self.setModel(model)
self.clicked.connect(self.on_clicked)
def on_clicked(self, index):
item = self.model().itemFromIndex(index)
print("Clicked on item:", item.text())
if __name__ == "__main__":
app = QApplication([])
view = MyListView()
view.show()
app.exec_()
```
在这个例子中,我们创建了一个QListView并使用QStandardItemModel填充了10个项。每个项都有一个图标和一个标签。然后我们连接了`clicked`信号到`on_clicked`槽函数上。在`on_clicked`函数中,我们获取了被单击的项的文本,并将其打印到控制台上。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)