QListView是从QAbstractItemView 派生的类,实现了QAbstractItemView类定义的接口 ,是Model/View架构中的视图类之一,是Qt模型/视图框架的一部分,提供基于模型的的列表模式或图标模式视图。html
QListView将存储在模型中的项显示为简单的没有父子层次的列表或图标集合,视图不显示水平或垂直标题,若要显示具备水平标题的项目列表,须要改用QTreeView或QTableView。python
QListView对应部件在Qt Designer的Item Views(Model-Based)部件栏中的List View部件,在Designer中可设置的属性包括batchSize、flow、gridSize、isWrapping、layoutMode、modelColumn、movement、resizeMode、selectionRectVisible、spacing、uniformItemSizes、viewMode、wordWrap十三项。web
layoutMode属性和batchSize属性用于控制视图中数据加载过程当中是当即展现仍是按批展现。架构
该属性是在layoutMode属性设置为Batched时,用于控制每一个批量的数量,缺省值为100,能够经过方法batchSize()、setBatchSize(int batchSize)来进行访问或设置。app
QListView的layoutMode属性用于控制视图中数据项的排列是当即进行仍是延迟进行。对应类型为枚举类型QListView.LayoutMode,其取值及含义以下:框架
layoutMode属性能够经过方法layoutMode()、setLayoutMode(LayoutMode mode) 来访问或设置layoutMode属性。ide
QListView的flow属性用于控制视图中的数据排列方向,其类型为枚举类型QListView.Flow,相关取值及含义以下:svg
LeftToRight:取值为0,表示数据项从左至右排列布局
TopToBottom:取值为1,表示数据项从上至下排列性能
该属性默认是TopToBottom,能够经过方法flow() 、setFlow(Flow flow)访问该属性。
在视图已经可见的状况下,设置该属性的值会致使视图中的数据项从新排列。
QListView的gridSize属性用于控制视图中数据项排列所在网格的大小,gridSize默认值是空,这意味着没有网格,数据项的排列不是按网格安排。将此属性设置为非空大小将开启网格布局。
在视图可见状况下设置此属性将会致使视图中的数据项从新排列,在数据量较多的状况下会带来较大的开销。
可使用gridSize()、setGridSize(const QSize size)来访问或设置该属性。
该属性还与视图中数据项的移动控制有关,当视图的movement属性设置为QListView.Snap时,数据项移动时将对齐到指定网格。
QListView的isWrapping属性用于控制视图中的数据项项布局在可见区域中没有足够空间时是否应换行。如下是两种布局方向状况下无足够可见空间展现数据项时进行换行展现的案例:
该属性能够经过方法isWrapping()、setWrapping(bool enable)来进行访问或设置。
在视图可见时isWrapping属性的设置将致使视图中项目再次布局。
QListView的modelColumn属性用于控制视图中展示model中哪一列数据,缺省值为0,即展示第一列数据。
能够经过modelColumn()、setModelColumn(int column)来访问和设置该属性。
QListView的movement属性用于控制在视图中怎么移动数据项,其类型为枚举类型QListView.Movement,有以下取值:
resizeMode属性用于控制调整视图大小时是否再次排列视图中的数据项,其类型为枚举类型 QListView.ResizeMode,取值及含义以下:
默认状况下,此属性设置为“Fixed”。能够经过方法resizeMode()、setResizeMode(ResizeMode mode)来访问或设置该属性。
QListView的spacing属性用于控制视图布局中数据项周围填充的空白空间的大小。缺省值为0,能够经过方法spacing()、setSpacing(int space)来访问和设置spacing属性。
QListView的viewMode属性用于控制QListView的视图模式,该属性类型为枚举类型QListView.ViewMode,有以下取值:
设置该属性将改变QListView在应用中未设置的属性以适应视图要设置的模式,除非调用clearPropertyFlags(),不然不会更改应用已设置的QListView相关的属性。
设置viewMode视图模式将根据选定的movement属性来启用或禁用拖放,对于ListMode,默认movement 属性值是Static (禁用拖放);对于IconMode,默认movement 属性值是Free (启用拖放)。
uniformItemSizes属性用于控制视图中全部项是否具备相同大小,只有在确保视图中的全部项都具备相同的大小时,才应将此属性设置为True。
统一视图中全部项统一大小,可使得视图在进行项排列时无需复杂计算,这使视图数据项排列时性能获得一些优化。
uniformItemSizes属性的缺省值为False,能够经过uniformItemSizes()、setUniformItemSizes(bool enable)进行属性的访问或设置。
wordWrap属性用于控制视图中数据项文本的换行策略。若是此属性为True,则在数据项文本中分词的适当处进行换;不然数据项文本不进行换行处理。默认状况下,此属性为True。
请注意,即便启用了换行,单元格也不会展开以适合全部文本,若是数据项的空间没法展现全部内容,则会根据textElideMode设定的省略号模式在文本中插入省略号。
该属性能够经过wordWrap()和setWordWrap(bool wordWrap)来进行访问和设置。
QListView的itemAlignment属性用于控制每一个数据项的对齐方式,其类型为枚举类Qt.Alignment或Qt.AlignmentFlag,其中 Qt.AlignmentFlag是对齐标记,它包括水平对齐标记、垂直对齐标记、两维对齐标记、以及右对齐应用模式中的组合标记:
对于对齐模式的掩码常量,没有找到相关资料说明其用途,老猿估计是用于对该属性的赋值数据经过与掩码常量进行与操做进行过滤使用,防止非正常对齐标记的数据出现。
itemAlignment属性默认对齐方式为0,这意味着每一个数据项将彻底填充其所在单元格。能够经过方法itemAlignment()和setItemAlignment(Qt.Alignment)来访问或设置。
本节详细介绍了QListView相关的属性,但专栏:使用PyQt开发图形界面Python应用除了本文中介绍的内容外,还有更多的细节,欢迎你们订阅支持老猿,谢谢!