qlistwidget添加多列(qt如何向listview里添加数据),本文通过数据整理汇集了qlistwidget添加多列(qt如何向listview里添加数据)相关信息,下面一起看看。
QListView简介
QListView列表视图可用于以列表形式显示数据。在Qt中,模型-视图结构用于处理数据和视图之间的关系。模型负责数据访问,视图负责数据显示,二者之间的数据交互通过委托来实现。
QT为处理数据项提供了一些现成的模型:
QStringListModel用于存储一个简单的QString列表;StandardItemModel管理复杂的树形结构数据项,每个数据项可以包含任意数据;QDirModel提供本地文件系统中的文件和目录信息;Qqlquerymodel、qsqltablemodel和qsqlrelationtablemodel用于访问数据库;
QListView是模型-视图框架中的一个类,是Qt模型-视图框架的一个组件。QListView实现QAbstractItemView类定义的接口,使其能够显示从QAbstractItemModel类派生的模型提供的数据。
QListView的常用方法:
SetModel():用于设置与视图关联的模型。可以使用Python的原生列表作为数据源模型;SelectedItem():选择模型的条目;IsSelected():确定模型中的条目是否被选中;Setmode():设置视图模式。(ListMode:条目从上到下排列,以小尺寸显示,IconMode:条目从左到右排列,以大尺寸显示)
QListView的常见信号:
Clicked:当单击一个项目时发出此信号;DoubleClicked:双击某项时发出该信号;激活:当用户激活索引指定的项目时,发送该信号;已输入:当鼠标光标进入index指定的项目时,发送该信号;IconSizeChanged:在视图可见的情况下设置图标大小时发送该信号;IndexesMoved:当索引在视图中移动时,会发送此信号;按下:当鼠标按钮被按下时,这个信号被传输;当鼠标光标进入视图时,这个信号被传输。
QListView类继承关系:
测试QListView
使用qstandarditemodel作为QListView使用的模型,并向每个qstandarditemodel条目添加图标和文本。完整的代码如下:
importsys,osfromPyQt5importQtCore,QtGui,QtWidgetsfromPyQt5。qtcoreimportqtfrompyqt 5 . QtGuiimportQIcon,QStandardItem,QStandardItemModelfromPyQt5。qtwidgetimport(q application,QWidget,QListView,QLabel,QVBoxLayout)
class demo listview(q widget):def _ _ init _ _(self,parent=None):super(demo listview,self)。__init__(父级)
#设置窗口标题self.setWindowTitle(\ 实战PyQt5:QListViewDemo!\) #设置窗口大小self.resize(480,360)
self.initUi()
definitUi(self):vLayout=QVBoxLayout(self)
LV=qlistview(self)SLM=qstandarditemodel()self . sports=[{\ img \ :\ /images/basketball . png \ ,\ title \: \ basketball \},{ \ img \ 。\ title\:\ football \},{\ img \: \/images/rugby-ball . png \ ,\ title \: \ football \},{ \ img \ :\ /
forsportinself . sports:item=QStandardItem(QIcon(OS . path . dirname(_ _ file _ _)sport[\ img \ ]),sport[\ title \ ])SLM . appendrow(item)
LV . set model(SLM)LV . clicked . connect(self . onlistviewclicked)self . label=q label(self)
vlayout . add widget(LV)vlayout . add widget(self . label)
self.setLayout(vLayout)
#将第一行lv.setcurrentindex (slm.index (0,0)) self.label.settext (\ 当前选择为:\ self.sports[0][\title\])设置为选中。
DeflistViewClicked (self,index): #显示选中的X信息self.label.setText(\ 当前选择为:\ self . sports[index . row()][\ title \ ])
if _ _ name _ _==\ _ _ main _ _ \ :app=QA application(sys . argv)window=DemoListView()window . show()sys . exit(app . exec())
运行结果如下:
测试QListView
本文采用QStandardItemModel作为视图模型。使用QStandItem为QStandardItemModel添加一个条目;向QStandItem条目添加图标和文本消息。
更多qlistwidget添加多列(qt如何向listview里添加数据)相关信息请关注本站,本文仅仅做为展示!