QT 获取文件属性
来源:互联网 发布:sonyz4tablet知乎 编辑:程序博客网 时间:2024/06/08 16:41
参考教材实例,增加了注释和新功能,方便大家交流学习
//fileinformation.cpp
include "fileinformation.h"
#
FileInformation::FileInformation( QWidget *parent, Qt::WindowFlags f )
: QDialog( parent, f )
{
setWindowTitle(tr("File Information"));
LabelFileName = new QLabel();
LabelFileName->setText(tr("File Name:"));
LineEditFileName = new QLineEdit();
PushButtonFile = new QPushButton( this);
PushButtonFile->setText( tr( "File" ) );
LabelSize = new QLabel();
LabelSize->setText(tr("Size:"));
LineEditSize = new QLineEdit();
LabelCreated = new QLabel();
LabelCreated->setText(tr("Created:"));
LineEditCreated = new QLineEdit();
LabelLastModified = new QLabel();
LabelLastModified->setText(tr("Last Modified:"));
LineEditLastModified = new QLineEdit();
LabelLastRead = new QLabel();
LabelLastRead->setText(tr("Last Read:"));
LineEditLastRead = new QLineEdit();
LabelProperty = new QLabel();
LabelProperty->setText(tr("Property:"));
CheckBoxIsDir = new QCheckBox();
CheckBoxIsDir->setText(tr("Dir"));
CheckBoxIsFile = new QCheckBox();
CheckBoxIsFile->setText(tr("File"));
CheckBoxIsSymLink = new QCheckBox();
CheckBoxIsSymLink->setText(tr("SymLink"));
CheckBoxIsHidden = new QCheckBox();
CheckBoxIsHidden->setText(tr("Hidden"));
CheckBoxIsReadable = new QCheckBox();
CheckBoxIsReadable->setText(tr("Readable"));
CheckBoxIsWritable = new QCheckBox();
CheckBoxIsWritable->setText(tr("Writable"));
CheckBoxIsExecutable = new QCheckBox();
CheckBoxIsExecutable->setText(tr("Executable"));
PushButtonGet = new QPushButton( this);
PushButtonGet->setText( tr("Get" ));
QHBoxLayout *hbLayout1 = new QHBoxLayout ();
hbLayout1->addWidget(LabelFileName);
hbLayout1->addWidget(LineEditFileName);
hbLayout1->addWidget(PushButtonFile);
QHBoxLayout *hbLayout2 = new QHBoxLayout ();
hbLayout2->addWidget(LabelSize);
hbLayout2->addWidget(LineEditSize);
QHBoxLayout *hbLayout3 = new QHBoxLayout();
hbLayout3->addWidget(LabelCreated);
hbLayout3->addWidget(LineEditCreated);
QHBoxLayout *hbLayout4 = new QHBoxLayout();
hbLayout4->addWidget(LabelLastModified);
hbLayout4->addWidget(LineEditLastModified);
QHBoxLayout *hbLayout5 = new QHBoxLayout();
hbLayout5->addWidget(LabelLastRead);
hbLayout5->addWidget(LineEditLastRead);
QHBoxLayout *hbLayout6 = new QHBoxLayout();
hbLayout6->addWidget(LabelProperty);
hbLayout6->addStretch();
QHBoxLayout *hbLayout7 = new QHBoxLayout();
hbLayout7->addWidget(CheckBoxIsDir);
hbLayout7->addWidget(CheckBoxIsFile);
hbLayout7->addWidget(CheckBoxIsSymLink);
hbLayout7->addWidget(CheckBoxIsHidden);
hbLayout7->addWidget(CheckBoxIsReadable);
hbLayout7->addWidget(CheckBoxIsWritable);
hbLayout7->addWidget(CheckBoxIsExecutable);
QVBoxLayout *vbLayout = new QVBoxLayout( this );
vbLayout->addLayout( hbLayout1 );
vbLayout->addLayout( hbLayout2 );
vbLayout->addLayout( hbLayout3 );
vbLayout->addLayout( hbLayout4 );
vbLayout->addLayout( hbLayout5 );
vbLayout->addLayout( hbLayout6 );
vbLayout->addLayout( hbLayout7 );
vbLayout->addWidget( PushButtonGet );
connect(PushButtonFile,SIGNAL(clicked()),this,SLOT(slotFile()));
connect(PushButtonGet,SIGNAL(clicked()),this,SLOT(slotGet()));
}
FileInformation::~FileInformation()
{
}
void FileInformation::slotFile()
{
QString s = QFileDialog::getOpenFileName( //获取文件路径
this, "open file dialog",
"/",
"files (*)");
LineEditFileName->setText( s.toAscii().data());//文件路径
}
void FileInformation::slotGet()
{
QFileInfo info(LineEditFileName->text());
//获取文件大小
//在不同的平台上,基本的C++类型如short,char,int,long,long long会有不同的字长。
//最好把它们转换为qint8,quint8,qint16,quint16,qint32,
//quint32,qint64,quint64,这些类型能确保字长是不随平台改变的。
qint64 size = info.size();
//读取文件时间信息
QDateTime created = info.created();
QDateTime lastModified = info.lastModified();
QDateTime lastRead = 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();
LineEditSize->setText (QString::number(size));
//显示文件时间信息
LineEditCreated->setText (created.toString());
LineEditLastModified->setText (lastModified.toString());
LineEditLastRead->setText (lastRead.toString());
//显示文件属性
CheckBoxIsDir->setCheckState (isDir?Qt::Checked:Qt::Unchecked);
CheckBoxIsFile->setCheckState (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);
}
----------------------------------------------------------------------------------------------
//fileinformation.h
#ifndef FILEINFORMATION_H
#define FILEINFORMATION_H
#include <QtGui>
class FileInformation : public QDialog
{
Q_OBJECT
public:
FileInformation( QWidget *parent=0, Qt::WindowFlags f=0 );
~FileInformation();
public:
QLabel* LabelFileName;
QLineEdit* LineEditFileName;
QPushButton* PushButtonFile;
QLabel* LabelSize;
QLineEdit* LineEditSize;
QLabel* LabelCreated;
QLineEdit* LineEditCreated;
QLabel* LabelLastModified ;
QLineEdit* LineEditLastModified;
QLabel* LabelLastRead ;
QLineEdit* LineEditLastRead;
QLabel* LabelProperty ;
QCheckBox* CheckBoxIsDir;
QCheckBox* CheckBoxIsFile;
QCheckBox* CheckBoxIsSymLink;
QCheckBox* CheckBoxIsHidden;
QCheckBox* CheckBoxIsReadable;
QCheckBox* CheckBoxIsWritable;
QCheckBox* CheckBoxIsExecutable;
QPushButton* PushButtonGet;
public slots:
void slotFile();
void slotGet();
};
#endif
----------------------------------------------------------------------------------------------
//main.cpp
#include "fileinformation.h"
#include <QApplication>
int main( int argc, char **argv )
{
QFont font("ZYSong18030",12);
QApplication::setFont(font);
QApplication a( argc, argv );
FileInformation fileinformation;
fileinformation.show();
return a.exec();
}
----------------------------------------------------------------------------------------------
//fileinformation.pro
TEMPLATE= app
TARGET= fileinformation
HEADERS= fileinformation.h
SOURCES= fileinformation.cpp /
main.cpp
----------------------------------------------------------------------------------------------
- QT 获取文件属性
- Qt获取文件属性
- Qt获取文件属性
- Qt获取文件属性
- 获取文件属性
- 获取文件属性
- 获取文件属性
- 获取文件属性
- 文件属性获取
- [Python]获取文件属性
- C#获取文件属性
- wince下获取文件属性
- c# 获取文件属性
- 获取文件属性并显示
- [Python]获取文件属性
- C#获取设置文件属性
- VC 文件属性获取
- Linux C获取文件属性
- android开机动画与logo
- AT&T network client和itunes的冲突
- Android应用程序模型
- 成功的道路上,人脉比知识更重要。
- 回环设备(loop-back devices)
- QT 获取文件属性
- JM86、X264、T264、FFMPEG编解码器评测
- 2011年的情人节马上就要到了 单身的男盆友女盆友们快准备好祸害人吧 (zz 有意思)
- SVN 和Subclipse安装和使用指南汇总
- [转载]要嫁就嫁程序员
- QTableWidget column宽度的设置
- vc ATL 外壳编程添加windows右键菜单
- ajax session
- camera callback