Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QStandardItemModel类提供用于存储自定义数据的通用模型。More...
该QStandardItemModel类提供用于存储自定义数据的通用模型。
QStandardItemModel可以作为标准的Qt数据类型的存储库。它是一Model/View Classes并且是Qt的一部分model/view框架。
QStandardItemModel提供了一个典型的项目为基础的方法与模型的工作。在QStandardItemModel的项目是由提供QStandardItem。
QStandardItemModel实现QAbstractItemModel接口,这意味着,该模型可以用来提供数据支持该接口(如任何视图QListView,QTableView和QTreeView,和你自己的自定义视图) 。对于性能和灵活性,你可能要继承QAbstractItemModel提供不同类型的数据存储库的支持。例如,本QDirModel(obsolete)提供了一个模型界面到底层的文件系统。
当你想要一个列表或树,你可以创建一个空的QStandardItemModel和使用appendRow( )将项目添加到模型中,并item()来存取项目。如果你的模型是一个表,通常需要传递的表的尺寸的QStandardItemModel的构造和使用setItem( )来定位的项目到表中。您也可以使用setRowCount()和setColumnCount()来改变模型的尺寸。要插入的项目,使用insertRow()或insertColumn( ) ,并删除项目,使用removeRow()或removeColumn( ) 。
你可以设置你的模型的标题与标籤setHorizontalHeaderLabels()和setVerticalHeaderLabels( ) 。
您可以在模型中的项目与搜索findItems() ,并且模型通过调用排序sort( ) 。
Call clear()从模型中删除所有项目。
QStandardItemModel的使用示例创建一个表:
QStandardItemModel model(4, 4); for (int row = 0; row < 4; ++row) { for (int column = 0; column < 4; ++column) { QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column)); model.setItem(row, column, item); } }
QStandardItemModel的使用示例创建树:
QStandardItemModel model; QStandardItem *parentItem = model.invisibleRootItem(); for (int i = 0; i < 4; ++i) { QStandardItem *item = new QStandardItem(QString("item %0").arg(i)); parentItem->appendRow(item); parentItem = item; }
设置模型的视图后,你通常需要响应用户操作,如被点击的项目。由于QAbstractItemView提供QModelIndex为基础的信号和功能,你需要一种方法来获得QStandardItem对应于一个给定的QModelIndex,反之亦然。itemFromIndex()和indexFromItem( )提供这种映射。典型的用法itemFromIndex()包括:获取该项目的当前索引处的一个视图,并获得对应于由一个执行一个索引的资料QAbstractItemView信号,如QAbstractItemView.clicked( ) 。首先,你的观点的信号连接到您的班级插槽:
QTreeView *treeView = new QTreeView(this); treeView->setModel(myStandardItemModel); connect(treeView, SIGNAL(clicked(QModelIndex)), this, SLOT(clicked(QModelIndex)));
当您收到信号,你叫itemFromIndex( )在给定的模型索引来获得一个指向文件:
void MyWidget.clicked(const QModelIndex &index) { QStandardItem *item = myStandardItemModel->itemFromIndex(index); // Do stuff with the item ... }
相反,你必须获得QModelIndex当你要调用一个模型/视图函数,它接受一个索引作为参数的项目。您可以使用该模型的两种获取索引indexFromItem()函数,或等价地,通过调用QStandardItem.index():
treeView->scrollTo(item->index());
你当然不需要使用的项目为基础的方法,你可以代替完全依赖QAbstractItemModel接口与模型的工作,或者在两者的组合中适当的时候。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个新的项目模型,给定parent。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个新的项目模型,最初有rows行和columns列,并且具有给定parent。
该items说法有它的所有权转移给Qt的。
含追加一列items。如果有必要,该行数将增加至大小items。
这个函数中引入了Qt 4.2中。
See also insertColumn()和appendRow( ) 。
该items说法有它的所有权转移给Qt的。
含追加的行items。如果需要的话,列计数值增加到的大小items。
这个函数中引入了Qt 4.2中。
See also insertRow()和appendColumn( ) 。
该aitem说法有它的所有权转移给Qt的。
这是一个重载函数。
当建立一个列表,或者只有一列树,该功能提供了一种方便的方式来追加一个新item。
这个函数中引入了Qt 4.2中。
从模型中删除所有项目(包括头项) ,并设置行数和列数为零。
See also removeColumns()和removeRows( ) 。
从重新实现QAbstractItemModel.columnCount( ) 。
See also setColumnCount( ) 。
从重新实现QAbstractItemModel.data( ) 。
See also setData( ) 。
从重新实现QAbstractItemModel.dropMimeData( ) 。
返回匹配给定的项目清单text,使用给定的flags在给定的column。
这个函数中引入了Qt 4.2中。
从重新实现QAbstractItemModel.flags( ) 。
从重新实现QAbstractItemModel.hasChildren( ) 。
从重新实现QAbstractItemModel.headerData( ) 。
See also setHeaderData( ) 。
返回水平标题项为column如果已经设置,否则返回0 。
这个函数中引入了Qt 4.2中。
See also setHorizontalHeaderItem()和verticalHeaderItem( ) 。
从重新实现QAbstractItemModel.index( ) 。
返回QModelIndex用给定的相关联item。
当您要执行需要的操作使用此功能QModelIndex该项目时,如QAbstractItemView.scrollTo( ) 。QStandardItem.index( )是作为方便,它等效于调用这个函数。
这个函数中引入了Qt 4.2中。
See also itemFromIndex()和QStandardItem.index( ) 。
该items说法有它的所有权转移给Qt的。
在插入一列column containing items。如果有必要,该行数将增加至大小items。
这个函数中引入了Qt 4.2中。
See also takeColumn( )appendColumn()和insertRow( ) 。
给定前插入一列column中的子项parent规定。返回True如果插入的列,否则返回False 。
See also insertColumns( )insertRow()和removeColumn( ) 。
从重新实现QAbstractItemModel.insertColumns( ) 。
该items说法有它的所有权转移给Qt的。
插入一个一行row containing items。如果需要的话,列计数值增加到的大小items。
这个函数中引入了Qt 4.2中。
See also takeRow( )appendRow()和insertColumn( ) 。
该aitem说法有它的所有权转移给Qt的。
给定前插入一个单行row中的子项parent规定。返回True如果被插入的行,否则返回False 。
See also insertRows( )insertColumn()和removeRow( ) 。
这是一个重载函数。
插入一个一行row containing item。
当建立一个列表,或者只有一列树,该功能提供了一种方便的方式来追加新的单一项目。
这个函数中引入了Qt 4.2中。
从重新实现QAbstractItemModel.insertRows( ) 。
返回模型的无形之根项目。
看不见的根项目,通过提供对模型的顶层项目QStandardItem的API ,从而可以写,可以治疗以统一的方式顶级项目及其子女的功能,例如,涉及树模型递归函数。
Note:调用index()在QStandardItem从这个功能检索的对象是无效的。
这个函数中引入了Qt 4.2中。
返回的项目为给定的row和column如果已经设置,否则返回0 。
这个函数中引入了Qt 4.2中。
See also setItem( )takeItem()和itemFromIndex( ) 。
从重新实现QAbstractItemModel.itemData( ) 。
See also setItemData( ) 。
返回一个指针QStandardItem用给定的相关联index。
调用此函数通常是最初的一步处理时,QModelIndex从一个基于视图的信号,如QAbstractItemView.activated( ) 。在您的插槽,你叫itemFromIndex ( ) ,与QModelIndex由信号作为参数进行,得到一个指向相应QStandardItem。
注意,这个函数会懒洋洋地创建索引项(使用itemPrototype( ) ) ,并将其设置在父项的子表,如果没有项目已经存在该索引。
If index是一个无效的指标,这个函数返回0 。
这个函数中引入了Qt 4.2中。
See also indexFromItem( ) 。
返回产品原型所使用的模型。该模型使用的项目原型作为项目的工厂时,它需要构建随需应变的新项目(例如,当一个视图或项目委讬调用setData())。
这个函数中引入了Qt 4.2中。
See also setItemPrototype( ) 。
该QMimeData结果
从重新实现QAbstractItemModel.mimeData( ) 。
从重新实现QAbstractItemModel.mimeTypes( ) 。
从重新实现QAbstractItemModel.parent( ) 。
从重新实现QAbstractItemModel.removeColumns( ) 。
从重新实现QAbstractItemModel.removeRows( ) 。
从重新实现QAbstractItemModel.rowCount( ) 。
See also setRowCount( ) 。
载列在这个模型数columns。如果它小于columnCount() ,在不需要的列中的数据将被丢弃。
这个函数中引入了Qt 4.2中。
See also columnCount()和setRowCount( ) 。
从重新实现QAbstractItemModel.setData( ) 。
See also data( ) 。
从重新实现QAbstractItemModel.setHeaderData( ) 。
See also headerData( ) 。
该item说法有它的所有权转移给Qt的。
设置水平标题项为column至item。该模型考虑了项目的所有权。如果需要的话,列计数增加,以适应产品。以前的标题项(如果有的话)将被删除。
这个函数中引入了Qt 4.2中。
See also horizontalHeaderItem( )setHorizontalHeaderLabels()和setVerticalHeaderItem( ) 。
设置使用水平标题标籤labels。如果需要的话,列计数值增加到的大小labels。
这个函数中引入了Qt 4.2中。
See also setHorizontalHeaderItem( ) 。
该item说法有它的所有权转移给Qt的。
设置项对于给定的row和column至item。该模型考虑了项目的所有权。如果必要,行数和列数都增加,以适应产品。在给定位置(如果有的话)上一个项目被删除。
这个函数中引入了Qt 4.2中。
See also item( ) 。
该aitem说法有它的所有权转移给Qt的。
这是一个重载函数。
从重新实现QAbstractItemModel.setItemData( ) 。
See also itemData( ) 。
该item说法有它的所有权转移给Qt的。
设置项的原型模型的指定的item。该模型采用原型的所有权。
该项目的原型作为一个QStandardItem工厂,所依托的QStandardItem.clone()函数。提供自己的原型,子类QStandardItem,重新实现QStandardItem.clone()和set原型是您的自定义类的实例。每当QStandardItemModel需要按需创建一个项目(例如,视图或项目委讬呼叫时setData( ) ) ) ,该新项目将是你的自定义类的实例。
这个函数中引入了Qt 4.2中。
See also itemPrototype()和QStandardItem.clone( ) 。
设定排在这个模型数rows。如果它小于rowCount() ,在不需要的行中的数据将被丢弃。
这个函数中引入了Qt 4.2中。
See also rowCount()和setColumnCount( ) 。
该item说法有它的所有权转移给Qt的。
设置垂直标题项为row至item。该模型考虑了项目的所有权。如果必要,行计数增加,以适应产品。以前的标题项(如果有的话)将被删除。
这个函数中引入了Qt 4.2中。
See also verticalHeaderItem( )setVerticalHeaderLabels()和setHorizontalHeaderItem( ) 。
设置使用垂直标题标籤labels。如果有必要,该行数将增加至大小labels。
这个函数中引入了Qt 4.2中。
See also setVerticalHeaderItem( ) 。
从重新实现QAbstractItemModel.sort( ) 。
从重新实现QAbstractItemModel.supportedDropActions( ) 。
QStandardItemModel支持复制和移动两种。
该list-of-QStandardItem结果
删除给定的column不删除的列项,并返回指针列表的删除的项。该模型释放的物品的所有权。在尚未设定的列项,列表中的相应指针将是0 。
这个函数中引入了Qt 4.2中。
See also takeRow( ) 。
该QStandardItem结果
删除在水平标题项column从标题而不删除它,并返回一个指向的项目。该模型发布该项目的所有权。
这个函数中引入了Qt 4.2中。
See also horizontalHeaderItem()和takeVerticalHeaderItem( ) 。
该QStandardItem结果
删除的项目(row,column)而不删除它。该模型发布该项目的所有权。
这个函数中引入了Qt 4.2中。
See also item( )takeRow()和takeColumn( ) 。
该list-of-QStandardItem结果
删除给定的row不删除的行项目,并返回指针列表的删除的项目。该模型释放的物品的所有权。对于没有被设置的行中的项目,列表中的相应指针将是0 。
这个函数中引入了Qt 4.2中。
See also takeColumn( ) 。
该QStandardItem结果
删除在垂直标题项row从标题而不删除它,并返回一个指向的项目。该模型发布该项目的所有权。
这个函数中引入了Qt 4.2中。
See also verticalHeaderItem()和takeHorizontalHeaderItem( ) 。
返回行的垂直标题项row如果已经设置,否则返回0 。
这个函数中引入了Qt 4.2中。
See also setVerticalHeaderItem()和horizontalHeaderItem( ) 。
这是该信号的默认超载。
这个信号被发射时的数据item已经改变。
这个函数中引入了Qt 4.2中。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |