Qt ModelView 学习笔记(13)
发布时间:2021-06-08
发布时间:2021-06-08
qt相关资料
提供一个model。view通过使用
selections来跟踪用户选择的数据项。每个view可以维护单独使用的selections,也可以在多个views之间共享。有些views,如QTableView和QTreeView,除数据项之外也可显示标题(Headers),标题部分通过一个view来实现,QHeaderView。标题与view一样总是从相同的model中获取数据。从 model中获取数据的函数是QabstractItemModel::headerDate(),一般总是以表单的形式中显示标题信息。可以从QHeaderView子类化,以实现更为复杂的定制化需求。
使用现成的view
Qt提供了三个现成的view 类,它们能够以用户熟悉的方式显示model中的数据。QListView把model中的数据项以一个简单的列表的形式显示,或是以经典的图标视图的形式显示。QTreeView把model中的数据项作为具有层次结构的列表的形式显示,它允许以紧凑的深度嵌套的结构进行显示。QTableView却是把model中的数据项以表格的形式展现,更像是一个电子表格应用程序的外观布局。
以上这些标准view的行为足以应付大多数的应用程序,它们也提供了一些基本的编辑功能,也可以定制特殊的需求。
使用model
以前的例子中创建过一个string list model,可以给它设置一些数据,再创建一个view把model中的内容展示出来:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// Unindented for quoting purposes:
QStringList numbers;
numbers << "One" << "Two" << "Three" << "Four" << "Five";
QAbstractItemModel *model = new StringListModel(numbers);
//要注意的是,这里把StringListModel作为一个QAbstractItemModel来使用。这样我们就可以
//使用model中的抽象接口,而且如果将来我们用别的model代替了当前这个model,这些代码也会照样工作。
//QListView提供的列表视图足以满足当前这个model的需要了。
QListView *view = new QListView;
下一篇:关于四年级英语教案范文总汇