QT做文件浏览器
来源:互联网 发布:北京匡恩网络的董事 编辑:程序博客网 时间:2024/05/19 19:14
出处:http://www.cnblogs.com/chenxuelian/archive/2010/04/12/1710266.html
项目要求做一个文件浏览器,要求文件以列表形式显示,当单击某个目录时,就会进入下层目录,用QT实现。
方法1:用QFileSystemModel或是QDir做model,QTableView做为显示的view。
采取这种方法的好处是:QFileSystemModel和QDir能自动的读取出当前目录下的文件信息。包括文件的大小,类型等,只要做如下设置就可以将当前目录下 的文件列表显示出来。
p_mTVFileList->setRootIndex(dirmodel->setRootPath(filename)); //QTableView设置当前的根目录
要查看view中某个文件或文件夹的信息的时候,只需要知道这个文件所处的index,如下
dirmodell->fileInfo(p_mTVFileList->currentIndex()); //查看当前文件的文件信息
但是QFileSystemModel和QDir里的显示都是英文的。可以通过重写QFileSystemModel的headerdata将表头变成中文,但是里面显示的文件信息的中文信 息还不知道怎样变成中文。
方法二:用QListWidget与QDir的entryInfoList实现。entryInfoList的功能比较强大。可以筛选性的读出目录下的文件信息
这种方法的实现原理是,用entryInfoList读出文件列表。将文件列表里的内容作为QListWidgetItem一项项的显示在QListWidget上,并记住当前的目录, 当点击list的某一项时,通过item->text()获取文件名,从而又通过entryInfoList进入下一级目录,用这种方法只能显示一列
方法三:用QStandardItemModel与QTableView实现,用QDir的entryInfoList获取文件信息,将获取到数据一步步的填到model中进行显示。
当点击某项之后,通过index.sibling(index.row(),0).data().toString()获取这一行某列的数据,得到文件名
方法四:用Dir的entryInfoList遍历整个的文件夹,将遍历到的结果放在一个QList里面,QList里放的是文件的一些信息,如下
typedef struct DirNode
{
char filename[200];
bool isDir;
long parent;
long child;
long next;
}DirNode, *PDirNode;
将各个文件文件夹用地址串起来,成一个链表
各个的代码如下:
/Files/chenxuelian/用链表实现的filenode.rar
/Files/chenxuelian/QFileSystemModel实现的fileview.rar
/Files/chenxuelian/普通model和tableview的fileview.rar
/Files/chenxuelian/QListWidget实现的fileview.rar
- qt做文件浏览器
- qt做文件浏览器
- QT做文件浏览器
- Qt 如何做浏览器
- qt文件浏览器
- Qt创建文件浏览器
- Qt 创建文件浏览器
- 用Qt树型控件做文件浏览器的简单实现
- PyQt/QT打开文件浏览器
- Qt学习之路之文件浏览器
- Qt创建文件浏览器(续)
- 利用Excel VBA SQL做特殊文件浏览器
- QT 常用部件 (三)QTreeView 文件浏览器
- Qt 自制文件浏览器并实现按照扩展名过滤
- 用Qt在Android上实现文件浏览器
- Qt:文件浏览器添加右击菜单实现重命名
- 用内嵌浏览器做Spider
- JavaScript做浏览器检测
- 绕过验证码,模拟登录 php
- AutoLayout初战----Masonry与FDTemplateLayoutCell实践
- Java 中 finally 语句块的深度辨析
- 软件工程——文档
- Eclipse插件开发调试篇
- QT做文件浏览器
- 【NOI2015】【程序自动分析】【并查集+离散化】
- 如何根据bostype查找实体
- Add-In 控制Command的可用性
- stm32之keil开发环境搭建
- jquery中子元素和后代元素的区别
- Linux学习笔记----文件处理命令---more ==分页显示文件内容
- iOS开发 关于CocoaPods安装和使用(图文并茂版)
- Hadoop基础之---运行运营