实例效果:
编程步骤
1、定义视图和模型对象
QFileSystemModel m_fsModel; //文件模型
QTreeView m_treeView; //树状显示视图
2、视图和模型的初始化
/*视图的位置大小设置*/
m_treeView.setParent(this);
m_treeView.move(10, 10);
m_treeView.resize(500, 300);
/*模型数据的来源*/
m_fsModel.setRootPath(QDir::currentPath()); //文件模型组织当前目录文件
3、视图和模型的连接
/*视图和模型建立联系*/
m_treeView.setModel(&m_fsModel);
4、视图通过索引来访问数据
/*在Qt中,不管模型以什么结构组织数据,都必须为每个数据提供不同的索引值,使得视图能通过索引值访问模型中的具体数据*/
m_treeView.setRootIndex(m_fsModel.index(QDir::currentPath()));
整体工程源码:
/*Widget.cpp*/
#include "Widget.h"
#include <QDir>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
m_treeView.setParent(this);
m_treeView.move(10, 10);
m_treeView.resize(500, 300);
m_fsModel.setRootPath(QDir::currentPath());
m_treeView.setModel(&m_fsModel);
m_treeView.setRootIndex(m_fsModel.index(QDir::currentPath()));
}
Widget::~Widget()
{
}
/*Widget.h*/
#ifndef WIDGET_H
#define WIDGET_H
#include <QtGui/QWidget>
#include <QFileSystemModel>
#include <QTreeView>
class Widget : public QWidget
{
Q_OBJECT
QFileSystemModel m_fsModel;
QTreeView m_treeView;
public:
Widget(QWidget *parent = 0);
~Widget();
};
#endif // WIDGET_H