首页 > 代码库 > 【Qt5开发及实例】22、文件浏览器

【Qt5开发及实例】22、文件浏览器

文件浏览器

今天有点痿了,昨天晚上2点左右睡的,怪我太痴迷编程????

NO!NO!NO!  看网络小说到2点,= =。我也是醉了,不知道为什么昨天晚上就是睡不着,然后就掏出手机看起了小说,结果是TMD居然看到了精彩片段,呵呵,等我回过神来已经2点了,坑。。。。


今天就做了个简单的小程序,然后就看看书,也没怎么敲代码,我觉得还是蛮好的,有时候不能往死里敲代码,还是要休息一下,看看其他的,思考一下下一步怎么走。

恩!就是这样,好吧,前面的这些才是今天的主要收获!!


文件浏览模型

/**
* 书本:【Qt5开发及实例】
* 功能:实现MVC的模型/视图类
* 文件:main.cpp
* 时间:2015年1月27日12:29:22
* 作者:cutter_point
*/
#include <QApplication>
#include <QAbstractItemModel>
#include <QAbstractItemView>
#include <QItemSelectionModel>

#include <QDirModel>
#include <QTreeView>
#include <QListView>
#include <QTableView>
#include <QSplitter>

int main(int argc, char *argv[])
{
  QApplication a(argc, argv);

  //首先创建一个文件模型
  QDirModel model;

  //三种显示模式
  QTreeView tree;
  QListView list;
  QTableView table;

  tree.setModel(&model);
  list.setModel(&model);
  table.setModel(&model);

  tree.setSelectionMode(QAbstractItemView::SingleSelection);   //单选
//  tree.setSelectionMode(QAbstractItemView::MultiSelection);   //多选
  list.setSelectionMode(QAbstractItemView::MultiSelection);   //多选
//  table.setSelectionMode(tree.selectionModel());   //多选
  table.setSelectionMode(QAbstractItemView::MultiSelection);   //多选

  QObject::connect(&tree,   SIGNAL(doubleClicked(QModelIndex)), &list, SLOT(setRootIndex(QModelIndex)));
  QObject::connect(&tree,   SIGNAL(doubleClicked(QModelIndex)), &table, SLOT(setRootIndex(QModelIndex)));
  QSplitter *splitter = new QSplitter;
  splitter->addWidget(&tree);
  splitter->addWidget(&list);
  splitter->addWidget(&table);
  splitter->setWindowTitle(QObject::tr("Model/View"));
  splitter->show();

  return a.exec();
}

你没有看错,就是这么多,我看这个图片上传,是越来越不爽了,代码是正确的,至于界面贴出来其实有利与理解,可是不知道为什么图片最近老贴不上去,哎,真想自己开一个自己的网站,自己写自己的,自己想怎么玩就怎么玩,等明年,我想办法搞一个,最好能拿到个免费的,嘿嘿!



【Qt5开发及实例】22、文件浏览器