Qt实现文件管理器

article/2025/11/9 17:47:03

Windows的资源管理器,大家很熟悉吧,可以放回上一级,查找到下一级………Qt中QDir 类可以实现显示文件系统目录的效果。

笔者的机器环境:Windows8.1

//fileview_widget.h#ifndef FILEVIEWWIDGET_H  
#define FILEVIEWWIDGET_H  #include <QWidget>  
#include <QDir>  
#include <QListWidgetItem>  
#include <QFileInfoList>  
#include <QListWidget>  
#include <QLineEdit>  
#include <QVBoxLayout>  
#include <QIcon>  
#include <QStringList>  class FileViewWidget : public QWidget  
{  Q_OBJECT  
public:  FileViewWidget(QWidget *parent=0);  //—用双击浏览器中显示的目录进入下一级,或者返回上一级目录。  void showFileInfoList(QFileInfoList list);  public slots:  //–显示当前目录下的所有文件  void slotShow(QDir dir);  //—-根据选择显示下一级目录下的文件,  void slotDirShow(QListWidgetItem *Item);  private:  QLineEdit *fileLineEdit;  QListWidget *fileListWidget;  QVBoxLayout *vLayout;  QFileInfoList list;  
};  #endif  //FILEVIEWWIDGET_H  

 

//fileview_widget.cpp#include “fileview_widget.h”  
#include<QTextCodec>  FileViewWidget::FileViewWidget(QWidget *parent/*=0*/) :QWidget(parent)  
{  //—–实例化对象  fileLineEdit = new QLineEdit(“/”, this);  fileListWidget = new QListWidget(this);  //—布局  vLayout = new QVBoxLayout(this);  vLayout->addWidget(fileLineEdit);  vLayout->addWidget(fileListWidget);  //–设置对应信号与槽  connect(fileLineEdit, SIGNAL(returnPressed()),   this, SLOT(slotDirShow(QDir)));  connect(fileListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem *)),  this, SLOT(slotDirShow(QListWidgetItem*)));  QString rootStr = ”/”;  QDir rootDir(rootStr);  QStringList stringlist;  stringlist << ”*”;  list = rootDir.entryInfoList(stringlist);  showFileInfoList(list);  //—显示布局  setLayout(vLayout);  //—-设置窗口属性  setWindowTitle(”File View”);  
}  //–显示当前目录下的所有文件  
void FileViewWidget::slotShow(QDir dir)  
{  QStringList stringList;  stringList << ”*”;  QFileInfoList InfoList = dir.entryInfoList(stringList, QDir :: AllEntries, QDir :: DirsFirst);  showFileInfoList(InfoList);  
}  //—用双击浏览器中显示的目录进入下一级,或者返回上一级目录。  
void FileViewWidget::showFileInfoList(QFileInfoList list)  
{  //–清空列表控件  fileListWidget->clear();  //—-取出所有项,按照目录,文件方式添加到控件内  for (unsigned int i = 0; i < list.count(); i++)  {  QFileInfo tmpFileInfo = list.at(i);  if (tmpFileInfo.isDir())  {  QIcon icon(”dir.png”);  QString fileName = tmpFileInfo.fileName();  QListWidgetItem*tmpListWidgetItem = new QListWidgetItem(icon, fileName);  fileListWidget->addItem(tmpListWidgetItem);  }  else  {  QIcon icon(”file.png”);  QString fileName = tmpFileInfo.fileName();  QListWidgetItem*tmpListWidgetItem = new QListWidgetItem(icon, fileName);  fileListWidget->addItem(tmpListWidgetItem);  }  }  
}  //—-根据用户的选择显示下一级目录下的文件,  
void FileViewWidget::slotDirShow(QListWidgetItem *Item)  
{  //—-保存下一级目录名  QString string = Item->text();  QDir dir;  //—-设置路径为当前目录路径  dir.setPath(fileLineEdit->text());  //—–重新设置路径  dir.cd(string);  //—-更新当前显示路径, 这里获取的是绝对路径  fileLineEdit->setText(dir.absolutePath());  //—显示当前文件目录下的所有文件  slotShow(dir);  
}  
//main.cpp#pragma once  
#include <QtWidgets/QApplication>  
#include “fileview_widget.h”  int main(int argc, char *argv[])  
{  QApplication a(argc, argv);  FileViewWidget win;  win.show();  return a.exec();  
}  

 

 下面是运行结果

 

                                                     

这里笔者列出关于QDir::Filter 的过滤方式,信息来源:assistant

Constant	Value	Description
QDir::Dirs	0x001	List directories that match the filters.
QDir::AllDirs	0x400	List all directories; i.e. don't apply the filters to directory names.
QDir::Files	0x002	List files.
QDir::Drives	0x004	List disk drives (ignored under Unix).
QDir::NoSymLinks	0x008	Do not list symbolic links (ignored by operating systems that don't support symbolic links).
QDir::NoDotAndDotDot	NoDot | NoDotDot	Do not list the special entries "." and "..".
QDir::NoDot	0x2000	Do not list the special entry ".".
QDir::NoDotDot	0x4000	Do not list the special entry "..".
QDir::AllEntries	Dirs | Files | Drives	List directories, files, drives and symlinks (this does not list broken symlinks unless you specify System).
QDir::Readable	0x010	List files for which the application has read access. The Readable value needs to be combined with Dirs or Files.
QDir::Writable	0x020	List files for which the application has write access. The Writable value needs to be combined with Dirs or Files.
QDir::Executable	0x040	List files for which the application has execute access. The Executable value needs to be combined with Dirs or Files.
QDir::Modified	0x080	Only list files that have been modified (ignored on Unix).
QDir::Hidden	0x100	List hidden files (on Unix, files starting with a ".").
QDir::System	0x200	List system files (on Unix, FIFOs, sockets and device files are included; on Windows, .lnk files are included)
QDir::CaseSensitive	0x800	The filter should be case sensitive.

 


http://chatgpt.dhexx.cn/article/q7TM8M0U.shtml

相关文章

Ubuntu安装Nemo替代默认文件管理器Nautilus

Ubuntu安装nemo替代默认文件管理器Nautilus Nemo, the default Cinnamon file manager, is far superior to Gnome’s default Files application (Nautilus) in terms of features. Nemo was forked from Nautilus 3.4, so it includes features removed from Nautilus, like …

文件管理器android开源,寻找优秀的安卓文件管理器 五款文件管理器大评比

文件管理器是手机的必备软件,无论在以前的塞班还是如今的Android。没有文件管理器,即使手机里的各种文件和文件夹都乱了套不说,从电脑传输到手机里的精彩应用也没法打开。Android作为目前普及率最高的智能系统,市场内的文件管理器应用也不算少,但那些是优秀的作品呢?今天…

android文件管理器,10款优秀的Android文件管理器

原标题:10款优秀的Android文件管理器 文件管理器是管理文件的软件,帮助用户处理日常工作,管理储存在本地和网络中的文件。所有文件管理器都提供了基本的操作如创建、打开、查看、编辑、移动和删除文件。许多Android文件管理器还提供了额外功能,如网络连接、应用程序管理、存…

文件服务器资源管理器类似软件,好用的小众文件管理软件推荐给大家

在文件管理方面,很多小伙伴并不是非常在意,然随着时间的流逝,文件管理的重要性却越来越明显,同时也有很多文件管理软件帮助大家整理这些乱七八糟的文件。这里给大家提供几种好用又实惠的小众文件管理软件。 (一)远程文件管理 Pydio,原名ajaxplorer,该软件能够通过本地实现…

最好的Linux文件管理器,适用于 Linux 用户的 10 款优秀且免费的文件管理器

文件管理器对于管理 Linux 系统上的日常活动至关重要。可靠的文件管理器提供了更简单的导航方式,并使文件操作更快。Linux 提供了各种各样的此类工具来帮助我们充分利用自己的时间。为了帮助您找到适用于 Linux 的最佳文件管理器, 10 个值得尝试的应用程序。如果您是一位 Lin…

android手机文件管理器,4 款 Android 文件管理器,总有一款适合你

在访问手机里的文件这件事上,Android 系统比 iOS 系统来说简直是轻而易举。大部分手机厂商也内置了文件管理器。但是手机厂商内置的文件管理器大部分功能简单,而且无法访问系统文件。 今天 小编为你介绍 4 款第三方文件管理器,它们各有所长,总有一款适合你。ES 文件管理器:…

android tv 文件管理,电视必备!5款文件管理器强力推荐

随着设备更新和使用&#xff0c;文件越来越多&#xff0c;系统越来越慢&#xff0c;这时候你就需要一款专业的文件管理器&#xff0c;进行有效管理你的设备。让你的设备发挥最大效能。那如何让文件管理操作变得更为简单更为轻松呢&#xff1f;请使用以下文件管理器&#xff0c;…

windows上最好用的文件管理软件 Directory Opus

windows上最好用的文件管理软件 Directory Opus windows 自带的文件管理软件就不用提了&#xff0c;垃圾的一比。而市面上比较流行的文件管理软件 xyploer&#xff0c;total commander 之类我都使用过&#xff0c;其中 total commander 的确是神器&#xff0c;但是界面太难看&…

MMSE

MMSE MMSE是指&#xff1a;minimum mean square error of estimation 这个是看了一个印度&#xff08;hin折磨了&#xff09;老师的视频做的笔记&#xff0c;就不翻译了&#xff0c;怕翻译的牛头不对马嘴哈哈哈哈哈哈

最小均方误差(MMSE)

在学习过程&#xff0c;发现用到最小均方误差&#xff08;MMSE&#xff09;和最小均方误差&#xff08;MI&#xff09;&#xff0c;这两个一样&#xff0c;只是名字不一样&#xff0c;没有给出确定的矩阵&#xff0c;在调研过程中&#xff0c;可以参考参考文献 M. Bica and V.…

MMSE信道估计学习笔记

1.首先要理解什么叫最小均方误差&#xff0c;知道定义 2.要知道MMSE存在“正交性原理”&#xff1a;&#xff0c;即误差和观测值、估计值正交。 ---其中&#xff0c;向量a,b内积的定义为&#xff0c;随机向量内积定义为。随机向量a,b正交就意味着&#xff0c;如果a&#xff0…

预编码ZF,MMSE,THP准则线性预编码误码率仿真

目录 1.算法概述 2.仿真效果预览 3.核心MATLAB代码预览 4.完整MATLAB程序 1.算法概述 恒定包络( Constant Enve-lope&#xff0c;CE) 预编码&#xff1b; 该算法规定&#xff0c;每根天线上的发射功率被限定为一个与信道条件和信号符号均无关的常数&#xff0c;各根天线均…

基于大规模MIMO的MMSE-AMPT信号检测算法的误码率仿真

目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 4.完整MATLAB 1.算法仿真效果 matlab2022a仿真结果如下&#xff1a; 2.MATLAB核心程序 n32; m64; SNR_range[0:2:20]; count0;for SNRSNR_range for monte1:5000[SNR,monte]Hrandn(m,n); %channel matrixA…

【信道估计】LS/MMSE信道估计,CS信道估计的MATLAB仿真

1.软件版本 MATLAB2021a2.本算法理论知识 构造测量矩阵是压缩感知技术中关键的研究方向之一, 在实现压缩的过程中需要构建一个满足RIP法则的特殊矩阵来保证较高的重构精度.在这篇文章中,我们通过一个简单的方式利用混沌序列构造测量矩阵,并证明在大多数情况下这种矩阵满足RIP法…

基于QPSK调制的多天线无编码通信系统中ZF、MMSE、SIC、ML符号检测性能比较。

一、题目 输入数据为猫图&#xff0c;并行分成5个数据流&#xff0c;每个都是QPSK调制&#xff0c;分别通过5个天线并行发送&#xff0c;单经瑞丽衰落信道&#xff08;5x5信道中每个元素皆为CN(0,1)分布&#xff09;外加AWGN&#xff0c;接收端为5个接收天线。比较ZF&#xff0…

mmse 语音降噪_懷舊篇, 單通道降噪, MMSE

記錄一下單通道降噪的一個經典方法, MMSE-STSA, MMSE-LSA, 已經是 1984 左右的文章了. 單通道降噪 OMLSA 也從這衍生出來的. 我們先從 MMSE-STSA 說起, 全名是 minimum mean-square error short time spectral amplitude. $y(t)x(t)d(t),0leq tleq T$ $x$, $d$, $y$ 分別是 spe…

MMSE法用于MIMO系统

MMSE法用于MIMO系统 MMSE方法用于MIMO系统程序如下&#xff1a; 之前讲到过迫零响应法&#xff08;ZF&#xff09;在MIMO系统中的应用&#xff0c;而另外一种均衡方法也常常用在不理想传输信道中&#xff0c;这就是最小误差法&#xff08;Minimum Mean Square Error&#xff0c…

信道估计---LS、MMSE、LMMSE准则

本期目录 引言基本假设LS信道估计LS信道估计工程实现 MMSE信道估计LMMSE信道估计LMMSE实现 引言 信道估计主要分为非盲信道估计和盲信道估计。顾名思义&#xff0c;非盲信道估计需要使用基站和接收机均已知的导频序列进行信道估计&#xff0c;并使用不同的时频域插值技术来估计…

MIMO系统Vblast检测算法误码率matlab仿真,对比了zf,mmse,mmse-sic,zf-sic,osic

目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 3.1zf 3.2mmse 3.3osic 4.完整MATLAB 1.算法仿真效果 matlab2022a仿真结果如下&#xff1a; 2.MATLAB核心程序 ................................................ for i1:length (SNRs)SNR(i) 10^(SNR…

MIMO系统信号检测之MMSE推论

定义 MMSE (Minimum Mean Square Error)表示最小均方误差。 它是一种以最小化接收数据的MSE为目的的接收机模型。过程 我们从以下最简单的信道模型开始&#xff1a; MMSE是一种后处理均衡算法。 它用于找出尽可能接近原发送数据(X)的接收数据(Y)。 以下图示意&#xff0c;M…