Qt模型视图框架:QListView

一、描述

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)

设置某行隐藏或者显示。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值