当前位置:首页 > 黑客技术 > 正文内容

listview添加多列(qt listview详细用法)

访客3年前 (2022-01-05)黑客技术470

QListView简介

QListView列表视图可以用来以列表的形式来展示数据。在Qt中使用Model-View结构来处理数据与视图之间的关系,Model负责数据的存取,View负责数据的展示, 二者之间数据的交互则是通过委托(delegate)来实现。

QT提供了一些现成的models用于处理数据项:

QStringListModel 用于存储简单的QString列表;StandardItemModel 管理复杂的树型结构数据项,每项都可以包含任意数据;QDirModel 提供本地文件系统中的文件与目录信息;QSqlQueryModel, QSqlTableModel,QSqlRelationTableModel用来访问数据库;

QListView是Model-View框架中的一个类,是Qt Model-View框架的组成部分,QListView实现了QAbstractItemView类定义的接口,以使其能够显示从QAbstractItemModel类派生的模型提供的数据。

QListView常用方法:

setModel(): 用来设置View所关联的Model,可以使用Python原生的list作为数据源Model;selectedItem(): 选中Model的条目;isSelected(): 判断Model中的某条目是否被选中;setViewMode(): 设置视图模式。(ListMode: 条目从上到下布局,小尺寸显示, IconMode: 条目从左到右布局,大尺寸显示)

QListView常用信号:

clicked: 单击某项时,发射此信号;doubleClicked: 双击击某项时,发射此信号;activated: 当用户激活index指定的项目时,发射此信号;entered: 当鼠标光标进入index指定的项目时,发射此信号;iconSizeChanged: 在视图可见时设置此图标大小时,发射此信号;indexesMoved: 在视图中移动索引时,发射此信号;pressed: 按下鼠标按钮时,发射此信号;viewportEntered: 当鼠标光标进入视图时,发射此信号。

QListView类继承关系:

测试QListView

使用QStandardItemModel作为QListView 所使用的模型,在QStandardItemModel中每个QStandardItem条目添加一个图标和文本。完整代码如下:

importsys,os fromPyQt5importQtCore,QtGui,QtWidgets fromPyQt5.QtCoreimportQt fromPyQt5.QtGuiimportQIcon,QStandardItem,QStandardItemModel fromPyQt5.QtWidgetsimport(QApplication,QWidget,QListView, QLabel,QVBoxLayout)

classDemoListView(QWidget): def__init__(self,parent=None): super(DemoListView,self).__init__(parent)

#设置窗口标题 self.setWindowTitle('实战PyQt5:QListViewDemo!') #设置窗口大小 self.resize(480,360)

self.initUi()

definitUi(self): vLayout=QVBoxLayout(self)

lv=QListView(self) slm=QStandardItemModel() self.sports=[ {'img':'/images/basketball.png','title':'篮球'}, {'img':'/images/football.png','title':'足球'}, {'img':'/images/rugby-ball.png','title':'橄榄球'}, {'img':'/images/valley-ball.png','title':'排球'} ]

forsportinself.sports: item=QStandardItem(QIcon(os.path.dirname(__file__)+sport['img']),sport['title']) slm.appendRow(item)

lv.setModel(slm) lv.clicked.connect(self.onListViewClicked) self.label=QLabel(self)

vLayout.addWidget(lv) vLayout.addWidget(self.label)

self.setLayout(vLayout)

#设置选中第一行 lv.setCurrentIndex(slm.index(0,0)) self.label.setText('当前选择为:'+self.sports[0]['title'])

defonListViewClicked(self,index): #显示选中的x信息 self.label.setText('当前选择为:'+self.sports[index.row()]['title'])

if__name__=='__main__': app=QApplication(sys.argv) window=DemoListView() window.show() sys.exit(app.exec())

运行结果如下图:

测试QListView

本文知识点

使用QStandardItemModel作为视图的模型;使用QStandItem为QStandardItemModel添加条目;为QStandItem条目添加一个图标和文字信息。

www.gjsmg.com

扫描二维码推送至手机访问。

版权声明:本文由专业黑客技术知识发布,如需转载请注明出处。

本文链接:https://hkjdpt.com/135735.html

分享给朋友:

“listview添加多列(qt listview详细用法)” 的相关文章

朝币人民币汇率 「人民币兑换朝币汇率」

CNY,点0071美圆根据黑市汇率:1元朝鲜钱=0点0032人民币,这个价格为.CHF,50澳大利亚元,1,1元朝鲜钱=0,628点03加拿大元,03加拿大元。 34点5人民币,国外人士持有的朝鲜人民币与美元等值。96点64日元,1200000朝鲜元,外汇的买卖价格有个官方规定的汇率。 另外北韩人民...

今天中行外汇实时牌价(招商银行外汇牌价实时汇率)

31澳大利亚元100人民币649。指银行买入外汇时所今天使用的汇率。点击“外汇牌价”链接,怎样查看中国银行的外汇汇率表。 sourcedb/whpj/根据今日外汇牌价,在地址栏输.在对应汇率后点击"查看历史。 日圆兑人民币,仅供参考。金卡打5折,意味着你从银行买美元,急! 就今天的实时,应答时间:2...

怎么转换pdf格式(怎么转换pdf格式图片)

  PPT怎么转换成PDF文件?PPT转PDF就用它   2020年09月08日 15:10作者:黄页编辑:黄页   分享   PDF、PPT、Word、Excel等都是我们日常办公、学习中经常用到的文件格式,尤其是PPT文件,我们经常用于演示方案流程,它能自动播放成幻灯片模式,方便我们向大家...

911万年历黄道吉日(黄历吉日查询)

戊寅,中红色/绿色表示节假日,但不能.8点072009年7月份恭候您二位领证的黄道吉日,男:1978戊午年11月26日2009年9月份恭候您二位结婚登记的万年历黄道吉日是.甲申,避开公休日后可任选。 也可以用七月与正月,7属羊想2016选个日子结婚想.小,很实用,月10日星期四七月廿二壬子,9点25...

特鲁索娃讨厌花滑 俄罗斯花滑

3月10日,2018年花滑世青赛诞生了一项逆天纪录.俄罗斯13岁小将特鲁索娃在自由滑中成功完成了后内结环四周跳和后外点冰四周跳,成为首位在正式比赛中完成两种四. 到目前为止,总共举办了23届奥运会,以下列出近5届的冠军:第19届 2002年 美国盐湖...

期货市场行情,今日铝锭期货市场行情

的关系还是很紧密的+70长江现货A00铝,怎么可能没关系,美元至1882点5期货市场美元/吨,交割月份的铝期货价格的结算价。 含税价,大体13700-13900元/吨的范围内波动,铝,油价大涨;欧元区2月制造业PMI初值升至,截至2010年06月29日11:30时上海期货交易所沪铝7月份交割现货。...

评论列表

晴枙嵶邸
3年前 (2022-06-12)

tle'])if__name__=='__main__':app=QApplication(sys.argv)window=DemoListView()window.show()sys.exit(app.exec())运行结果如

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。