listview pyqt5 添加_pyqt5 QlistView列表显示的实现示例

本文介绍了如何在PyQt5中使用QListView显示列表数据。通过创建QStringListModel,绑定数据并设置点击事件,展示了QListView的基本用法。示例代码详细解释了如何添加条目并响应用户点击操作。
摘要由CSDN通过智能技术生成

1、简介

QlistView类用于展示数据,它的子类是QListWIdget。QListView是基于模型(Model)的,需要程序来建立模型,然后再保存数据

QListWidget是一个升级版本的QListView,它已经建立了一个数据储存模型(QListWidgetItem),直接调用addItem()函数,就可以添加条目(Item)

QListView类中常用的方法如表

方法

描述

setModel()

用来设置View所关联的Model,可以使用Python原生的list作为数据源Model

selectedItem()

选中Model的条目

isSelected()

判断Model中的某条目是否被选中

QListView的常用信号

信号

含义

clicked

当单击某项时,信号被发射

doubleClicked

当双击某项时,信号被发射

2、功能实现

# -*- coding: utf-8 -*-

'''

【简介】

PyQt5中 QListView 例子

'''

from PyQt5.QtWidgets import QApplication, QWidget , QVBoxLayout , QListView, QMessageBox

from PyQt5.QtCore import QStringListModel

import sys

可以通过以下步骤实现PyQt5中通过搜索添加文本到QListView中: 1. 创建一个QListView对象: ```python listView = QtWidgets.QListView() ``` 2. 创建一个QStringListModel对象,用于保存搜索结果: ```python listModel = QtCore.QStringListModel() ``` 3. 连接搜索框的文本改变信号到一个回调函数中,在回调函数中根据搜索框的文本更新QStringListModel对象: ```python def onSearchTextChanged(self, text): # 这里的search()函数是根据搜索框的文本查找符合条件的结果的函数 result = search(text) listModel.setStringList(result) ``` 4. 将QStringListModel对象设置为QListView的模型: ```python listView.setModel(listModel) ``` 完整的代码示例: ```python from PyQt5 import QtCore, QtGui, QtWidgets class MainWindow(QtWidgets.QMainWindow): def __init__(self): super().__init__() # 创建搜索框 self.searchEdit = QtWidgets.QLineEdit() self.searchEdit.textChanged.connect(self.onSearchTextChanged) # 创建QListView self.listView = QtWidgets.QListView() # 创建QStringListModel self.listModel = QtCore.QStringListModel() # 设置模型 self.listView.setModel(self.listModel) # 创建布局 centralWidget = QtWidgets.QWidget(self) layout = QtWidgets.QVBoxLayout(centralWidget) layout.addWidget(self.searchEdit) layout.addWidget(self.listView) self.setCentralWidget(centralWidget) def onSearchTextChanged(self, text): # 这里的search()函数是根据搜索框的文本查找符合条件的结果的函数 result = search(text) self.listModel.setStringList(result) def search(text): # 这里假设搜索结果是一个字符串列表 return ['Result 1', 'Result 2', 'Result 3'] if __name__ == '__main__': app = QtWidgets.QApplication([]) mainWindow = MainWindow() mainWindow.show() app.exec_() ``` 这个示例中,我们创建了一个搜索框和一个QListView,然后连接了搜索框的文本改变信号到一个回调函数中,在回调函数中根据搜索框的文本更新了QStringListModel对象,并将其设置为QListView的模型。最后在搜索函数中返回了一个字符串列表作为搜索结果。在实际使用中,可以根据具体需求实现自己的搜索函数,例如从数据库中查找符合条件的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值