zoukankan      html  css  js  c++  java
  • QT获取文件信息

    效果图如下:

    image

    代码:

    FileInformation.h

    /********************************************************************
    	created:	2012/04/10
    	created:	10:4:2012   17:10
    	filename: 	F:\C++\FileInformation\FileInformation\fileinformation.h
    	file path:	F:\C++\FileInformation\FileInformation
    	file base:	fileinformation
    	file ext:	h
    	author:		Rollen Holt
    	
    	purpose:	The head File of this project
    *********************************************************************/
    #ifndef FILEINFORMATION_H
    #define FILEINFORMATION_H
    
    #include <QtGui>   //in order to convenient, don't recommend.
    #include "ui_fileinformation.h"
    
    class FileInformation : public QDialog
    {
    	Q_OBJECT
    
    public:
    	FileInformation(QWidget *parent = 0, Qt::WFlags flags = 0);
    	~FileInformation();
    
    private:
    	Ui::FileInformationClass ui;
    
    	QLabel *fileNameLabel;
    	QLineEdit *fileNameLineEdit;
    	QPushButton *fileButton;
    
    	QLabel *fileSize;
    	QLineEdit *fileLineEditSize;
    
    	QLabel *fileCreatLabel;
    	QLineEdit *fileCreatLineEdit;
    
    	QLabel *fileLastModifyLabel;
    	QLineEdit *fileLastModifLineEdit;
    
    	QLabel *fileLastVisitedLabel;
    	QLineEdit *fileLastVisitedLineEdit;
    
    	QLabel *filePropertyLabel;
    	QCheckBox *checkIsDir;
    	QCheckBox *checkIsFile;
    	QCheckBox* checkBoxIsSymLink;
    	QCheckBox* checkBoxIsHidden;
    	QCheckBox* checkBoxIsReadable;	
    	QCheckBox* checkBoxIsWritable;	
    	QCheckBox* checkBoxIsExecutable;
    
    	QPushButton* PushButtonGet;
    
    	void getFileInformation(QString fileName);
    
    	private slots:
    		void slotFile();
    		void slotGet();
    };
    
    #endif // FILEINFORMATION_H
    

    fileInformation.cpp

    
    #include "fileinformation.h"
    
    FileInformation::FileInformation(QWidget *parent, Qt::WFlags flags)
    	: QDialog(parent, flags)
    {
    	ui.setupUi(this);
    	setWindowTitle(tr("File Information"));
    
    	fileNameLabel=new QLabel(tr("File Name"));
    	fileNameLineEdit=new QLineEdit();
    	fileButton=new QPushButton(tr("Open"));
    	QHBoxLayout *layout1=new QHBoxLayout();
    	layout1->addWidget(fileNameLabel);
    	layout1->addWidget(fileNameLineEdit);
    	layout1->addWidget(fileButton);
    
    	fileSize=new QLabel(tr("File Size"));
    	fileLineEditSize=new QLineEdit();
    	QHBoxLayout *layout2=new QHBoxLayout();
    	layout2->addWidget(fileSize);
    	layout2->addWidget(fileLineEditSize);
    
    	fileCreatLabel=new QLabel(tr("Creat Time"));
    	fileCreatLineEdit=new QLineEdit();
    	QHBoxLayout *layout3=new QHBoxLayout();
    	layout3->addWidget(fileCreatLabel);
    	layout3->addWidget(fileCreatLineEdit);
    
    	fileLastModifyLabel=new QLabel(tr("Last Modify Time"));
    	fileLastModifLineEdit=new QLineEdit();
    	QHBoxLayout *layout4=new QHBoxLayout();
    	layout4->addWidget(fileLastModifyLabel);
    	layout4->addWidget(fileLastModifLineEdit);
    
    	fileLastVisitedLabel=new QLabel(tr("Last Visited Time"));
    	fileLastVisitedLineEdit=new QLineEdit();
    
    	filePropertyLabel=new QLabel(tr("File Property"));
    	checkIsDir=new QCheckBox(tr("Menu"));
    	checkIsFile=new QCheckBox(tr("File"));
    	checkBoxIsSymLink=new QCheckBox(tr("SymLink"));
    	checkBoxIsReadable=new QCheckBox(tr("Readable"));
    	checkBoxIsWritable=new QCheckBox(tr("Writeable"));
    	checkBoxIsHidden=new QCheckBox(tr("Hodden"));
    	checkBoxIsExecutable=new QCheckBox(tr("Executable"));
    	QHBoxLayout *layout5=new QHBoxLayout();
    	layout5->addWidget(filePropertyLabel);
    	layout5->addWidget(checkIsDir);
    	layout5->addWidget(checkIsFile);
    	layout5->addWidget(checkBoxIsSymLink);
    	layout5->addWidget(checkBoxIsReadable);
    	layout5->addWidget(checkBoxIsWritable);
    	layout5->addWidget(checkBoxIsExecutable);
    
    	PushButtonGet=new QPushButton(tr("Get File Information"));
    
    	// main layout
    	QVBoxLayout *mainLayout=new QVBoxLayout();
    	mainLayout->addLayout(layout1);
    	mainLayout->addLayout(layout2);
    	mainLayout->addLayout(layout3);
    	mainLayout->addLayout(layout4);
    	mainLayout->addLayout(layout5);
    	mainLayout->addWidget(PushButtonGet);
    	setLayout(mainLayout);
    
    	connect(fileButton,SIGNAL(clicked()),this,SLOT(slotFile()));
    	connect(PushButtonGet,SIGNAL(clicked()),this,SLOT(slotGet()));
    }
    
    FileInformation::~FileInformation()
    {
    	
    }
    
    /*
     * Get file information
     **/
    void FileInformation::getFileInformation(QString fileName){
    	QFileInfo info(fileName);
    
    	qint64 size=info.size();
    	QDateTime creatTime=info.created();
    	QDateTime lastModifyTime=info.lastModified();
    	QDateTime lastReadTime=info.lastRead();
    	
    	bool isDir=info.isDir();
    	bool isFile=info.isFile();
    	bool isSymLink = info.isSymLink();
    	bool isHidden = info.isHidden();
    	bool isReadable = info.isReadable();
    	bool isWritable = info.isWritable();
    	bool isExecutable =info.isExecutable();
    
    	fileLineEditSize->setText(QString::number(size));
    	fileCreatLineEdit->setText(creatTime.toString());
    	fileLastModifLineEdit->setText(lastModifyTime.toString());
    	fileLastVisitedLineEdit->setText(lastReadTime.toString());
    
    	checkIsDir->setCheckable(isDir?Qt::Checked:Qt::Unchecked);
    	checkIsFile->setCheckable(isFile?Qt::Checked:Qt::Unchecked);
    	checkBoxIsSymLink->setCheckState (isSymLink?Qt::Checked:Qt::Unchecked);
    	checkBoxIsHidden->setCheckState (isHidden?Qt::Checked:Qt::Unchecked);
    	checkBoxIsReadable->setCheckState (isReadable?Qt::Checked:Qt::Unchecked);
    	checkBoxIsWritable->setCheckState (isWritable?Qt::Checked:Qt::Unchecked);
    	checkBoxIsExecutable->setCheckState (isExecutable?Qt::Checked:Qt::Unchecked);
    }
    
    /*
     *	Open file
     **/
    void FileInformation::slotFile(){
    	QString s=QFileDialog::getOpenFileName(this,tr("open file"),"/","files(*)");
    	fileNameLineEdit->setText(s.toAscii());
    }
    
    
    void FileInformation::slotGet(){
    	getFileInformation(fileNameLineEdit->text());
    }

    main.cpp

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

  • 相关阅读:
    CentOS 7 安装Python pip
    关于 HIVE Beeline 问题
    HIVE 简单总结
    值得一提:关于 HDFS 的 file size 和 block size
    Hadoop作业优化
    一篇文章,掌握所有开源数据库的现状
    dfs.replication 参数 动态修改
    Hadoop YARN ERROR 1/1 local-dirs are bad *, 1/1 log-dirs are bad *
    Hadoop 中关于 map,reduce 数量设置
    CentOS ulimit
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2440932.html
Copyright © 2011-2022 走看看