Model/view 第二部分:QFileSystemModel的使用

Model/view 第二部分:QFileSystemModel的使用

QFileSystemModel类的基本功能:

QFileSystemModel提供了一个可用于访问本机文件系统的数据模型,其和视图组件QTreeView结合使用,可以用目录树的形式显示本机上的文件系统

同Windows的资源管理器一样。

通过使用setRootPath()函数为QFileSystemModel设置一个根目录,例如:

QFileSystemModel *model = new QFileSystemModel;

model->setRootPath(QDir::currentPath());

QDir::currentPath()用于获取当前应用程序的当前路径

接下来就做个小项目来实践下

目的:通过路径获取当前系统的结构并且使用TreeView显示出来,在TreeView中点击一个目录时,其目录的下层文件信息在listview和tableview中显示出来。

  1. ui建立:新建三个groupBox,在其内部放入Treeview,ListView,TableView
  2. 代码实现:
    1. 新建一个QFileSystemModel:QFileSystemModel *model = new QFileSystemModel();
  3. MainWindow构造函数中代码如下:

 

                model->setRootPath(QDir::currentPath());//设置根目录

                将数据模型设进个view中:

                ui->treeView->setModel(model);

                ui->listView->setModel(model);

                ui->tableView->setModel(model)

  1. 当treeview被单击时,将tableview和listview的setRootPath重新设置根目录即可。相关的根目录信息包含在QModelIndex中。具体代码如下:

  connect(ui->treeView,SIGNAL(clicked(QModelIndex)),

ui>listView,SLOT(setRootIndex(QModelIndex)));

    connect(ui->treeView,SIGNAL(clicked(QModelIndex)),ui->tableView,SLOT(setRootIndex(QModelIndex)));

运行后的结果如下图所示:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值