运行图展示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/d29d1162466b47fc98ac15fe6207ab2b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oiR5oOz5pGY5pif6L6w,size_11,color_FFFFFF,t_70,g_se,x_16)
代码部分:
#include "fileview.h"
FileView::FileView(QWidget *parent,Qt::WindowFlags f)
: QDialog(parent,f)
{
setWindowTitle(tr("FileView"));
fileLineEdit = new QLineEdit(tr("/"));
fileListWidget = new QListWidget;
mainLayout = new QVBoxLayout(this);
mainLayout->addWidget(fileLineEdit);
mainLayout->addWidget(fileListWidget);
connect(fileLineEdit,SIGNAL(returnPressed()),this,SLOT(slotShow(QDir)));
connect(fileListWidget,SIGNAL(itemDoubleClicked(QListWidgetItem*)),this,SLOT(slotDirShow(QListWidgetItem*)));
QString root="/";
QDir rootDir(root);
QStringList string;
string<<"*";
QFileInfoList list =rootDir.entryInfoList(string);
showFileInfoList(list);
}
void FileView::slotShow(QDir dir)
{
QStringList string;
string<<"*";
QFileInfoList list = dir.entryInfoList(string,QDir::AllEntries,QDir::DirsFirst);
showFileInfoList(list);
}
void FileView::showFileInfoList(QFileInfoList list)
{
fileListWidget->clear();
for(unsigned int i=0;i<list.count();i++)
{
QFileInfo info=list.at(i);
if(info.isDir())
{
QIcon icon("dir.png");
QString fileName = info.fileName();
QListWidgetItem* item = new QListWidgetItem(icon,fileName);
fileListWidget->addItem(item);
}
else if(info.isFile())
{
QIcon icon("file.png");
QString fileName = info.fileName();
QListWidgetItem* item = new QListWidgetItem(icon,fileName);
fileListWidget->addItem(item);
}
}
}
void FileView::slotDirShow(QListWidgetItem *item)
{
QString str = item->text();
QDir dir;
dir.setPath(fileLineEdit->text());
dir.cd(str);
fileLineEdit->setText(dir.absolutePath());
slotShow(dir);
}
FileView::~FileView()
{
}