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

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

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

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详细用法)” 的相关文章

英伟达泄露数据正被用来制作伪装成驱动的病毒

由于自称为 Lapsus$ 的组织泄露了与英伟达黑客攻击相关的数据,被盗的代码签名证书被用于远程访问未受保护的 PC,其他情况下则被用来部署恶意软件。 根据 Techpowerup 的报道,这些证书被用于“开发一种新型恶意软件”,BleepingComputer 将 Cobalt Strike...

英特尔和 Arm 的 CPU 再被发现存在重大安全漏洞 Spectre-HBB

 BHI是一种影响大多数英特尔和Arm CPU的新型投机执行漏洞,它攻击分支全局历史而不是分支目标预测。不幸的是,这些公司以前对Spectre V2的缓解措施也无法保护BHI的威胁,尽管AMD处理器大多是免疫的。消息传出后,供应商应该很快就会发布安全补丁,而最新得Linux内核已经打了补丁。...

俄罗斯面临 IT 危机 距离数据存储空间耗尽只剩下两个月

在西方云计算供应商撤出俄罗斯后,俄罗斯面临严峻的IT存储危机,在数据存储耗尽之前,俄罗斯只剩下两个月的时间。这些解决方案是在数字转型部举行的一次会议上提出的,出席会议的有Sberbank、MTS、Oxygen、Rostelecom、Atom-Data、Croc和Yandex的代表。 据俄罗斯新闻媒...

3 月份近 90% 的网络攻击是针对俄罗斯和乌克兰的

我们已经习惯了来自俄罗斯的大量网络攻击,但在乌克兰被入侵后出现了一个有趣的转变,3月份70%的网络攻击反过来都是针对俄罗斯的。Atlas VPN的研究显示,还有19%的攻击是针对乌克兰的。美国是第三大目标,但国际局势让针对该国的攻击只占总数的5%。 3月5日,随着匿名黑客宣布对俄罗斯进行全面的网络...

据称黑客泄露了多达 37GB 的来自微软的源代码

据称,一个黑客组织泄露了微软37GB的源代码,这些代码与包括Bing和Cortana在内的数百个项目有关,这是一系列重大网络安全事件中的最新一起。Lapsus$黑客组织在周一晚上公开发布了一个9GB的压缩文件。据称,该7zip档案包含了从微软获得的250多个内部项目。 据称这些数据来自微软的Az...

微软禁用 MSIX AppX 安装程序以使用户免遭 Emotet、BazarLoader 类威胁

微软今天正式宣布,它已经禁用了MSIX应用安装程序协议以防止恶意攻击。该协议允许用户直接从网络服务器上安装各种应用程序,而不需要先将其下载到本地存储。当时的想法是,这种方法将为用户节省空间,因为不需要下载整个MSIX包。 然而,这种Windows应用程序安装包后来被发现用来分发恶意的PDF文件,如...

评论列表

鸠骨沐白
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

发表评论

访客

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