pyqt QlistView的单击事件
时间: 2023-11-21 11:05:22 浏览: 237
android listview单击事件
5星 · 资源好评率100%
在PyQt中,可以使用QListView控件来显示一个列表,并且可以响应单击事件。为此,需要将QListView的clicked信号连接到一个槽函数上。
下面是一个示例代码,演示了如何在QListView控件中实现单击事件:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QListView
from PyQt5.QtGui import QStandardItemModel, QStandardItem
from PyQt5.QtCore import QModelIndex
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.listview = QListView(self)
self.listview.clicked.connect(self.on_listview_clicked)
vbox = QVBoxLayout()
vbox.addWidget(self.listview)
self.setLayout(vbox)
# 设置模型
model = QStandardItemModel()
for i in range(10):
item = QStandardItem(f"Item {i}")
model.appendRow(item)
self.listview.setModel(model)
def on_listview_clicked(self, index: QModelIndex):
item = self.listview.model().itemFromIndex(index)
print(f"Clicked: {item.text()}")
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在这个示例代码中,我们首先创建了一个QListView控件,并将其clicked信号连接到了on_listview_clicked()槽函数上。然后我们通过QStandardItemModel来设置了控件的模型,并添加了10个Item。最后,当用户点击列表中的任意一项时,程序会自动调用on_listview_clicked()函数,并打印出该项的文本内容。
阅读全文