浅谈Qt做文件浏览器 晴天擎天柱玩具
创始人
2024-07-31 11:51:26
0

Qt做文件浏览器项目要求做一个文件浏览器,要求文件以列表形式显示,当单击某个目录时,就会进入下层目录,用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里放的是文件的一些信息,如下

 

  1.   typedef struct DirNode  
  2.   {  
  3.    char filename[200];  
  4.    bool isDir;  
  5.    long parent;  
  6.    long child;  
  7.    long next;  
  8.   }DirNode, *PDirNode; 

将各个文件文件夹用地址串起来,成一个链表

各个的代码如下:

/Files/chenxuelian/用链表实现的filenode.rar

/Files/chenxuelian/QFileSystemModel实现的fileview.rar

/Files/chenxuelian/普通model和tableview的fileview.rar

/Files/chenxuelian/QListWidget实现的fileview.rar

【编辑推荐】

Qt phonon多媒体框架

Qt/E服务器客户端架构

Qt网络之获取本机网络信息

测试自动化 浅谈QTP脚本的重用

图解五大主流浏览器***市场份额

浅谈自动化测试工具 QTP脚本的重用

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...