listview列表框使用方法
像歌曲列表,文件列表,这种可以用QListView实现,例如,下面的结果:
代码如下:
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QListView, QMessageBox from PyQt5.QtCore import QStringListModel import sys class ListViewDemo(QWidget): def __init__(self, parent=None): super(ListViewDemo, self).__init__(parent) self.setWindowTitle("QListView 例子") self.resize(300, 270) layout = QVBoxLayout() listview = QListView() listModel = QStringListModel() self.list = ["列表项1","列表项2", "列表项3"] listModel.setStringList(self.list) listview.setModel(listModel) listview.clicked.connect(self.onClickedListView) layout.addWidget(listview) self.setLayout(layout) def onClickedListView(self,item): QMessageBox.information(self,"QListView","您选择了:" + self.list[item.row()]) if __name__ == "__main__": app = QApplication(sys.argv) win = ListViewDemo() win.show() sys.exit(app.exec_())
单击某一项时会触发信号clicked, 该信号如下:
def clicked(self, QModelIndex): # real signature unknown; restored from __doc__ """ clicked(self, QModelIndex) [signal] """ pass
QModelIndex保存了当前点击的行信息,可以通过row()获取当前的项索引。
上面代码链接了该信号
listview.clicked.connect(self.onClickedListView)
点击后,就会触发槽函数,获取当前行信息。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了