一、描述
QListView 将存储在模型中的项目呈现为简单的非分层列表或图标集合。此视图不显示水平或垂直标题。
QStandardItemModel * model = new QStandardItemModel;for(int i = 0; i < 11; ++i){QStandardItem *item = new QStandardItem(QString::number(i));model->appendRow(item);}QListView listView;listView.setModel(model);listView.show();
二、类型成员
1、enum QListView::Flow:项目布局流向方向。
LeftToRight:项在视图中从左到右排列。如果isWrapping属性为 true,则布局将在到达可见区域的右侧时换行。TopToBottom:项在视图中从上到下排列。(默认)
2、enum QListView::LayoutMode:项目的布局是应该立即发生还是延迟发生。
SinglePass:项目一次全部布局。Batched:项目按 batchSize属性进行批量布局。
3、enum QListView::Movement:如何在视图中移动项目
Static:不能移动项目。(默认)Free:可以自由移动项目。Snap:移动时项目对齐到指定的网格。
4、enum QListView::ResizeMode:在调整视图大小时是否再次对项目进行布局。
Fixed:只有在第一次显示视图时才会对项目进行布局。Adjust:每次调整视图大小时都会对项目进行布局。
5、enum QListView::ViewMode:视图模式
ListMode:项目使用从上到下流布局,小尺寸,禁用拖放。IconMode:项目使用从左到右流布局,大尺寸,启用拖放。
三、属性成员
1、batchSize:int
如果 layoutMode 设置为Batched,则此属性保存每个批次中布局的项目数。默认值为 100。
2、gridSize : QSize
此属性是布置项目的网格的大小。默认为空尺寸,这意味着没有网格并且布局不在网格中完成。 将此属性设置为非空大小会打开网格布局。(当网格布局生效时,spacing属性将被忽略。)
3、isWrapping:bool
此属性保存当可见区域中没有更多空间时布局是否应换行。布局环绕的点取决于flow(QListView::Flow)属性。默认情况下,此属性为 false。
4、itemAlignment : Qt::Alignment
此属性保存其单元格中每个项目的对齐方式。这仅在具有 TopToBottom 流和 isWrapping 为true时受支持。默认为 0,即项目完全填充其单元格。
5、modelColumn:int
此属性保存模型中可见的列。
6、selectionRectVisible : bool
如果选择模式处于可以选择多个项目的模式,选择矩形是否可见。默为 false。(QAbstractItemView::SelectionMode)
7、spacing : int
此属性是在布局中的项目周围填充的空白空间的大小。默认为0。
8、uniformItemSizes : bool
此属性保存列表视图中的所有项目是否具有相同的大小。默认为 false。
9、wordWrap : bool
如果此属性为true,则项目文本会在必要的断字处换行。默认为 false。
四、成员函数
1、[signal] void indexesMoved(const QModelIndexList &indexes)
指定的索引在视图中移动时会发出此信号。
2、void clearPropertyFlags()
清除设置的 QListView::ViewMode。
3、bool isRowHidden(int row)
某行是否已隐藏。
4、QRect rectForIndex(const QModelIndex &index)
返回模型中 index 位置项的矩形。
5、void setRowHidden(int row, bool hide)
设置某行隐藏或者显示。