当前位置:首页 > 渗透破解 > 正文内容

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

访客3年前 (2022-01-05)渗透破解551

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.gj *** g.com

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

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

本文链接:https://w-123.com/102517.html

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

Atlassian 解决了一个关键的 Jira 身份验证绕过漏洞

Atlassian解决了其Jira Seraph软件中的一个严重漏洞,该漏洞编号为CVE-2022-0540(CVSS 评分 9.9),未经身份验证的攻击者可以利用该漏洞绕过身份验证。威胁参与者可以通过向易受攻击的软件发送特制的HTTP 请求来触发漏洞。 该漏洞会对Jira软件多版本产生影响,比如...

安全研究人员通过苹果 AirTag 追踪伪装机构 最终指向德国联邦宪法保卫局

一位研究人员将苹果公司的一个AirTags发送到德国一个神秘的”联邦机构”,以确定其真正的办公室,并帮助证明它确实是一个情报机构的一部分。苹果公司的AirTags已经在涉及追踪个人的案件中被用得有声有色,但现在一位德国研究人员在揭露政府机密时使用了一个。 活动家Lilith Wittmann声称,...

Tor 网站被劫持,REvil勒索软件再次关闭

在一个不明身份的人劫持了他们的Tor支付门户网站和数据泄露博客后,REvil勒索软件可能再次关闭。 17日早些时候, Tor网站下线了,一名与REvil勒索软件有关的威胁行为者在XSS黑客论坛上发帖称有人劫持了REvil团伙的域名。 这个帖子最先是被Recorded Future的Dmitry Sm...

盘点 2021 年十大网络安全事件

作者:知道创宇404实验室 (转载本文请注明出处:https://hackernews.cc/archives/37193) 在网络安全领域,2021年注定是不平静的一年。世界各地频发网络安全事件,诸如数据泄漏、勒索软件、黑客攻击等等层出不穷,有组织、有目的的网络攻击形势愈加明显,网络安全风险持续...

在 ESET 和微软帮助下 乌克兰成功阻止针对能源设施的网络攻击

在 ESET 和微软研究人员的帮助下,乌克兰官员表示成功阻止了一起针对能源设施的网络攻击。在本次阻止攻击过程中,它们发现了 Industroyer 的新变种,它是一个臭名昭著的恶意软件,在 2016 年被 Sandworm APT 组织用来切断乌克兰的电力。 乌克兰政府计算机应急小组(CERT-U...

安全报告:黑客利用木马程序感染300多万台电脑 攫取1.2TB以上数据

Nord Locker 安全分析师发现,在 2018-2020 年间黑客利用一个木马化恶意程序,感染了超过 300 多万台电脑,并从中攫取了 1.2T 以上的敏感信息。这款尚未命名的恶意软件从超过 325 万台 Windows PC 中收集信息,收集的数据包括 20 亿个 cookies 和 110...

评论列表

鸠骨沐白
3年前 (2022-07-06)

ked.connect(self.onListViewClicked)self.label=QLabel(self)vLayout.addWidget(lv)vLayout.addWidget(

寻妄征棹
3年前 (2022-07-06)

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

发表评论

访客

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