#include "fileinfo.h"
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QFileDialog>
#include <QDateTime>
FileInfo::FileInfo(QWidget *parent,Qt::WindowFlags f)
: QDialog(parent,f)
{
fileNameLabel = new QLabel(tr("文件名:"));
fileNameLineEdit = new QLineEdit;
fileBtn = new QPushButton(tr("文件"));
sizeLabel = new QLabel(tr("大小:"));
sizeLineEdit = new QLineEdit;
createTimeLabel = new QLabel(tr("创建时间:"));
createTimeLineEdit = new QLineEdit;
lastModifiedLabel = new QLabel(tr("最后修改时间:"));
lastModifiedLineEdit = new QLineEdit;
lastReadLabel = new QLabel(tr("最后访问时间:"));
lastReadLineEdit = new QLineEdit;
propertyLabel = new QLabel(tr("属性:"));
isDirCheckBox = new QCheckBox(tr("目录"));
isFileCheckBox = new QCheckBox(tr("文件"));
isSymLinkCheckBox = new QCheckBox(tr("符号连接"));
isHiddenCheckBox = new QCheckBox(tr("隐藏"));
isReadableCheckBox = new QCheckBox(tr("读"));
isWritableCheckBox = new QCheckBox(tr("写"));
isExecutableCheckBox = new QCheckBox(tr("执行"));
getBtn = new QPushButton(tr("获得文件信息"));
QGridLayout *gridLayout = new QGridLayout;
gridLayout->addWidget(fileNameLabel,0,0);
gridLayout->addWidget(fileNameLineEdit,0,1);
gridLayout->addWidget(fileBtn,0,2);
gridLayout->addWidget(sizeLabel,1,0);
gridLayout->addWidget(sizeLineEdit,1,1,1,2);
gridLayout->addWidget(createTimeLabel,2,0);
gridLayout->addWidget(createTimeLineEdit,2,1,1,2);
gridLayout->addWidget(lastModifiedLabel,3,0);
gridLayout->addWidget(lastModifiedLineEdit,3,1,1,2);
gridLayout->addWidget(lastReadLabel,4,0);
gridLayout->addWidget(lastReadLineEdit,4,1,1,2);
QHBoxLayout *layout2 = new QHBoxLayout;
layout2->addWidget(propertyLabel);
layout2->addStretch();
QHBoxLayout *layout3 = new QHBoxLayout;
layout3->addWidget(isDirCheckBox);
layout3->addWidget(isFileCheckBox);
layout3->addWidget(isSymLinkCheckBox);
layout3->addWidget(isHiddenCheckBox);
layout3->addWidget(isReadableCheckBox);
layout3->addWidget(isWritableCheckBox);
layout3->addWidget(isExecutableCheckBox);
QHBoxLayout *layout4 = new QHBoxLayout;
layout4->addWidget(getBtn);
QVBoxLayout *mainLayout = new QVBoxLayout(this);
mainLayout->addLayout(gridLayout);
mainLayout->addLayout(layout2);
mainLayout->addLayout(layout3);
mainLayout->addLayout(layout4);
connect(fileBtn,SIGNAL(clicked()),this,SLOT(slotFile()));
connect(getBtn,SIGNAL(clicked()),this,SLOT(slotGet()));
}
void FileInfo::slotFile()
{
QString fileName = QFileDialog::getOpenFileName(this,"打开","/", "files (*)");
fileNameLineEdit->setText(fileName);
}
void FileInfo::slotGet()
{
QString file = fileNameLineEdit->text();
QFileInfo info(file); //根据输入参数创建一个QFileInfo对象
qint64 size = info.size(); //获得QFileInfo对象的大小
QDateTime created = info.created();
//获得QFileInfo对象的创建时间
QDateTime lastModified = info.lastModified();
//获得QFileInfo对象的最后修改时间
QDateTime lastRead = info.lastRead();
//获得QFileInfo对象的最后访问时间
/* 判断QFileInfo对象的文件类型属性 */
bool isDir = info.isDir(); //是否为目录
bool isFile = info.isFile(); //是否为文件
bool isSymLink = info.isSymLink(); //(a)
bool isHidden = info.isHidden(); //判断QFileInfo对象的隐藏属性
bool isReadable = info.isReadable(); //判断QFileInfo对象的读属性
bool isWritable = info.isWritable(); //判断QFileInfo对象的写属性
bool isExecutable = info.isExecutable();
//判断QFileInfo对象的可执行属性
/* 根据上面得到的结果更新界面显示 */
sizeLineEdit->setText(QString::number(size));
createTimeLineEdit->setText(created.toString());
lastModifiedLineEdit->setText(lastModified.toString());
lastReadLineEdit->setText(lastRead.toString());
isDirCheckBox->setCheckState(isDir?Qt::Checked:Qt::Unchecked);
isFileCheckBox->setCheckState(isFile?Qt::Checked:Qt::Unchecked);
isSymLinkCheckBox->setCheckState(isSymLink?Qt::Checked:Qt:: Unchecked);
isHiddenCheckBox->setCheckState(isHidden?Qt::Checked:Qt:: Unchecked);
isReadableCheckBox->setCheckState(isReadable?Qt::Checked:Qt:: Unchecked);
isWritableCheckBox->setCheckState(isWritable?Qt::Checked:Qt:: Unchecked);
isExecutableCheckBox->setCheckState(isExecutable?Qt::Checked: Qt:: Unchecked);
}
FileInfo::~FileInfo()
{
}
没有合适的资源?快使用搜索试试~ 我知道了~
Qt5开发及实例-CH906.rar,Qt5利用QFileinfo类获得文件信息的代码
共5个文件
cpp:2个
user:1个
pro:1个
需积分: 1 0 下载量 88 浏览量
2023-09-15
17:26:09
上传
评论 1
收藏 5KB RAR 举报
温馨提示
Qt5开发及实例,实例CH906,利用QFileinfo类获得文件信息,如图9.6所示。 工程FileInfo.pro的具体内容如下。 (1)在头文件“fileinfo.h”中,类FileInfo继承自QDialog类,此类中声明了用到的各种相关控件和函数,其具体内容。 (2)源文件“fileinfo.cpp”的具体内容。 槽函数slotFile()完成通过标准文件对话框获得所需要文件的文件名功能,其具体内容如下: void FileInfo::slotFile() { QString fileName = QFileDialog::getOpenFileName(this,"打开","/", "files (*)"); fileNameLineEdit->setText(fileName); } 槽函数slotGet()通过QFileInfo获得具体的文件信息,其具体内容。 (3)运行结果如图9.6所示。
资源推荐
资源详情
资源评论
收起资源包目录
Qt5开发及实例_CH906.rar (5个子文件)
CH906
FileInfo
FileInfo.pro.user 23KB
main.cpp 179B
FileInfo.pro 990B
fileinfo.cpp 5KB
fileinfo.h 1017B
共 5 条
- 1
资源评论
华为奋斗者精神
- 粉丝: 8104
- 资源: 241
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功