MODEL/VIEW (二)
来源:互联网 发布:新网域名转出申请表 编辑:程序博客网 时间:2024/05/16 11:28
介绍
Qt提供了两个标准的models:QStandardItemModel和QDirModel。QStandardItemModel是一个多用途的
model,可用于表示list,table,tree views所需要的各种不同的数据结构。这个model也持有数据。QDirModel
维护相关的目录内容的信息,它本身不持有数据,仅是对本地文件系统中的文件与目录的描述。
QDirModel是一个现成的model,很容易进行配置以用于现存的数据,使用这个model,可以很好地展示如何
给一个现成的view设定model,研究如何用model indexes来操纵数据。
model与views的搭配使用
QListView与QTreeView很适合与QDirModel搭配。下面的例子在tree view与list view显示了相同的信息,QDirModel提供了目录内容数据。这两个Views共享用户选择,因此每个被选择的项在每个view中都会被高亮。
先装配出一个QDirModel以供使用,再创建views去显示目录的内容。这给我展示了使用model的最简单的方式。
model的创建与使用都在main()函数中完成:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSplitter *splitter = new QSplitter;
QDirModel *model = new QDirModel;
//从缺省目录创建数据
QTreeView *tree = new QTreeView(splitter);
tree->setModel(model);
tree->setRootIndex(model->index(QDir::currentPath()));
QListView *list = new QListView(splitter);
list->setModel(model);
list->setRootIndex(model->index(QDir::currentPath()));
//配置一个view去显示model中的数据,只需要简单地调用setModel(),并把目录model作为参数传递
//setRootIndex()告诉views显示哪个目录的信息,这需要提供一个model index,然后用这个
//model index去model中去获取数据
//index()这个函数是QDirModel特有的,通过把一个目录做为参数,得到了需要的model index
//其他的代码只是窗口show出来,进入程序的事件循环就好了
splitter->setWindowTitle("Two views onto the same directory model");
splitter->show();
return app.exec();
}
- Qt Model/view(二)
- MODEL/VIEW (二)
- QT model/view 学习二
- Qt的Model/View (二)
- Model-View-Controller(二)
- (三十六)Model/View Programming (二)
- Qt Model/View 学习笔记 (二)
- Qt Model/View 学习笔记 (二)
- Qt Model/View 学习笔记 (二)
- Qt的Model/View (二)
- Qt Model/View 学习笔记(二)
- Qt的Model/View (二)
- Qt Model/View 学习笔记 (二)
- Qt的Model/View (二)
- Qt的Model/View (二)
- Qt的Model/View (二)
- Qt Model/View 学习笔记 (二)
- Qt Model/View 学习笔记 (二)
- 关于ARM的22个常用概念
- 图解微软性能测试工具VSTS2008 Load Test Agent安装2013也差不多
- 谷歌链接新地址
- java IO压缩流
- memcpy
- MODEL/VIEW (二)
- log4j 的那些事
- HDU 1506 Largest Rectangle in a Histogram
- 数据结构之折半查找表
- MODEL/VIEW(三)
- NSIS打包--修改默认安装路径
- 通过Web启动本地应用程序(二)
- Filter获取初始化配置文件参数
- Android软件开发之PreferenceActivity中的组件