zoukankan      html  css  js  c++  java
  • QT中的文件浏览

    FileViewr.h

    #ifndef FILEVIEWR_H
    #define FILEVIEWR_H
    
    #include <QtGui>
    #include "ui_fileviewr.h"
    
    class FileViewr : public QDialog
    {
    	Q_OBJECT
    
    public:
    	FileViewr(QWidget *parent = 0, Qt::WFlags flags = 0);
    	~FileViewr();
    
    private:
    	Ui::FileViewrClass ui;
    
    	QLineEdit *LineEditDir;
    	QListWidget *ListWidaetFile;
    	
    	void showFileInfoList(QFileInfoList list);
    private slots:
    		void slotShow(QDir dir);
    		void slotShowDir(QListWidgetItem *item);
    
    };
    
    #endif // FILEVIEWR_H
    

    FileViewr.cpp

    #include "fileviewr.h"
    
    FileViewr::FileViewr(QWidget *parent, Qt::WFlags flags)
    	: QDialog(parent, flags)
    {
    	ui.setupUi(this);
    	setWindowTitle(tr("File views"));
    
    	LineEditDir=new QLineEdit();
    	LineEditDir->setText("/");
    
    	ListWidaetFile=new QListWidget();
    
    	QVBoxLayout *layout=new QVBoxLayout(this);
    	layout->addWidget(LineEditDir);
    	layout->addWidget(ListWidaetFile);
    
    	connect(LineEditDir,SIGNAL(returnPressed()),this,SLOT(slotShow()));
    	connect(ListWidaetFile,SIGNAL(itemDoubleClicked(QListWidgetItem *)),this,SLOT(slotShowDir(QListWidgetItem *)));
    
    	QString root="/";
    	QDir rootDir(root);
    
    	QStringList string;
    	string<<"*";
    	QFileInfoList list=rootDir.entryInfoList(string);
    	showFileInfoList(list);
    
    }
    
    FileViewr::~FileViewr()
    {
    
    }
    
    /*
     * slotShow 负责显示dir目录下的所有文件
     **/
    void FileViewr::slotShow(QDir dir){
    	QStringList string;
    	string <<"*";
    	QFileInfoList list=dir.entryInfoList (string,QDir::AllEntries,QDir::DirsFirst);
    	showFileInfoList(list);
    }
    
    void FileViewr::slotShowDir(QListWidgetItem *item){
    
    	QString str=item->text();
    	QDir dir;
    	dir.setPath(LineEditDir->text());
    	dir.cd(str);
    	LineEditDir->setText(dir.absolutePath());
    	slotShow(dir);
    }
    
    void FileViewr::showFileInfoList(QFileInfoList list){
    	ListWidaetFile->clear();
    
    	 for(unsigned int i=0;i<list.count();i++){
    		QFileInfo temFileinfo=list.at(i);
    		if(temFileinfo.isDir()){
    			QIcon icon(":/images/dir.png");
    			QString fileName=temFileinfo.fileName();
    			QListWidgetItem *tmp=new QListWidgetItem(icon,fileName);
    			ListWidaetFile->addItem(tmp);
    		}else{
    			QIcon icon(":/images/file.png");
    			QString fileName=temFileinfo.fileName();
    			QListWidgetItem *tmp=new QListWidgetItem(icon,fileName);
    			ListWidaetFile->addItem(tmp);
    		}
    	}
    }

    main.cpp

    #include "fileviewr.h"
    #include <QtGui/QApplication>
    
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    	FileViewr *w=new FileViewr;
    	w->show();
    
    	
    	return a.exec();
    }
    

    image

  • 相关阅读:
    Windows7旗舰版安装VS2008的SP1的问题(KB945140, KB947888)
    Hex RGB颜色值互换
    php沥遍目录结构
    linux ftp设置
    Android开发环境搭建
    php读取excel文件
    wordpress插件制作
    wordpress主题制作
    php读取excel文件(OLERead.php页代码)
    php ios推送
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2441122.html
Copyright © 2011-2022 走看看