当前位置:   article > 正文

model-view模型之QListView和QStringListModel ._qstringlistmodel lisview

qstringlistmodel lisview

以QListView为例子,QListView是不显示表头和表框的,如果要显示,可以使用QTreeView来代替。
view的显示属性分为列表list显示和icon图标显示,

使用QListView::setViewMode()来设置,默认为list型的

/*

void setViewMode ( ViewMode mode )

enum QListView::ViewMode

Constant Value Description
QListView::ListMode 0 The items are laid out using TopToBottom flow, with Small size and Static movement
QListView::IconMode 1 The items are laid out using LeftToRight flow, with Large size and Free movement

*/

QListView::setModel ()用来设置view所关联的model

获取view中当前的位置,QListView::currentIndex(),返回的是QModelIndex类型的
设置当前行使用QListView::setCurrentIndex(QModelIndex),
设置某行可以编辑,使用QListView::edit(QModelIndex)

 当某个QModelIndex被移动时候,信号indexesMoved(QModelIndexList)被发射
当双击某项时候,信号doubleClicked(QModelIndex)被发射
当大几某项时候,信号clicked(QModelIndex)被发射

 QStringListModel就是封装了QStringList的model。QStringList是一种很常用的数据类型,它实际上是一个字符串列表。我们可以想象,对于一个list来说,如果提供一个字符串列表形式的数据,就应该能够把这个数据展示出来。因为二者是一致的:QStringList是线性的,而list也是线性的。所以,QStringListModel很多时候都会作为QListView的model。

为model添加关联的数据

QStringList data;
data << "Letter A" << "Letter B" << "Letter C";
model->setStringList(data);

model使用insertRows,insertRow来添加多行或一行,使用setData()来设置该行的数据
rowCount()用来获改model的行数
removeRows()和removeRow()用来删除model中的一行或多行,详见API手册

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/783800
推荐阅读
相关标签
  

闽ICP备14008679号