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();
    }
    

  • 相关阅读:
    【python+selenium自动化】图像识别技术在UI自动化测试中的实际运用
    【python+selenium自动化】使用pytest+allure2完成自动化测试报告的输出
    【python+selenium自动化】设置Chrome启动参数
    迭代器 和 生成器
    Python 第三方包上传至 PyPI 服务器
    python 模块导入全局变量
    装饰器
    set 集合数据类型
    lambda 、 map 、filter 、reduce 及 reversed 常用函数
    AVA + Spectron + JavaScript 对 JS 编写的客户端进行自动化测试
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2440932.html
Copyright © 2011-2022 走看看