dialog.cpp代码
#include "dialog.h"
#include "ui_dialog.h"
#include <QAbstractItemView>
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
LineEditDir=ui->lineEdit;
ListWidgetFile=ui->listWidget;
LineEditDir->setText("/");
QString root="/";
QDir rootDir(root);
QStringList string;
string << "*" ;
QFileInfoList list=rootDir.entryInfoList (string);
showFileInfoList(list);
this->setWindowTitle(tr("资源管理器));
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::showFileInfoList(QFileInfoList list)
{
ListWidgetFile->clear();
itemnum=0;
ListWidgetFile->setCurrentRow(itemnum);
m=ListWidgetFile->currentRow();
for(int i=0;i<list.size();i++)
{
QFileInfo tmpFileInfo=list.at(i);
if(tmpFileInfo.isDir())
{
QIcon icon(":/images/dir.png");
QString filename=tmpFileInfo.fileName();
QListWidgetItem *tmp=new QListWidgetItem(icon,filename);
ListWidgetFile->addItem(tmp);
}
else if(tmpFileInfo.isFile())
{
QIcon icon(":/images/file.png");
QString filename=tmpFileInfo.fileName();
QListWidgetItem *tmp=new QListWidgetItem(icon,filename);
ListWidgetFile->addItem(tmp);
}
}
ListWidgetFile->setItemSelected(ListWidgetFile->item(itemnum),true);
ListWidgetFile->setCurrentRow(itemnum);
m=ListWidgetFile->currentRow();
}
void Dialog::slotShow(QDir dir)
{
QStringList string;
string<<"*";
QFileInfoList list=dir.entryInfoList(string,QDir::AllEntries,QDir::DirsFirst);
showFileInfoList(list);
}
void Dialog::on_listWidget_itemDoubleClicked(QListWidgetItem* item)
{
QString str=item->text();
QDir dir;
dir.setPath(LineEditDir->text());
dir.cd(str);
LineEditDir->setText(dir.absolutePath());
slotShow(dir);
}
void Dialog::on_listWidget_itemClicked(QListWidgetItem* item)
{
itemnum=ListWidgetFile->currentRow();
}
void Dialog::on_copyButton_clicked()
{
}
void Dialog::on_pasteButton_clicked()
{
}
void Dialog::on_enterButton_clicked()
{
QString str;
str=ListWidgetFile->currentItem()->text();
QDir dir;
dir.setPath(LineEditDir->text());
dir.cd(str);
LineEditDir->setText(dir.absolutePath());
slotShow(dir);
}
void Dialog::on_upButton_clicked()
{
if(itemnum>0)
{
itemnum--;
ListWidgetFile->setItemSelected(ListWidgetFile->item(itemnum),true);
ListWidgetFile->setCurrentRow(itemnum);
m=ListWidgetFile->currentRow();
}
}
void Dialog::on_downButton_clicked()
{
QDir dir;
QStringList string;
dir.setPath(LineEditDir->text());
string<<"*";
QFileInfoList list=dir.entryInfoList(string,QDir::AllEntries,QDir::DirsFirst);
if(itemnum<list.size()-1)
{
itemnum=itemnum+1;
ListWidgetFile->setItemSelected(ListWidgetFile->item(itemnum),true);
ListWidgetFile->setCurrentRow(itemnum);
m=ListWidgetFile->currentRow();
}
}