实现效果
需求:
1.通过点击右侧的按钮来选取文件
2.对于文件的各项信息在选完文件后会在下方的单行文本编辑器中打印出来
3.对于文件的各项属性在下面的多选按钮中勾选
界面设计
利用布局管理器可以对各个部件进行水平,垂直布局
代码实现
1.按钮实现(选择打开文件)
步骤:
1.利用文件对话框来选择文件
2.在文件名的单行文本编辑器中写入选中文件的路径
3.在自己定义的获取信息方法"getFileInfo(fileName)"以路径为实参进行操作(该方法在后面会出现)
如果不知道文件对话框是怎么回事的同学可以看上一篇博客(*^_^*)
void FileInfo::on_browseFileBtn_clicked()
{
QString fileName=QFileDialog::getOpenFileName(this,"选择文件",".","file(*)");
ui->fileNameLineEdit->setText(fileName);
getFileInfo(fileName);
//选择目录👇
// QString path=QFileDialog::getExistingDirectory(this,"选择目录",".");
// ui->fileNameLineEdit->setText(path);
// getFileInfo(path);
}
2.getFileInfo方法的实现
先上代码:
都在代码的注释里,大家有兴趣的瞧瞧
void FileInfo::getFileInfo(QString &fileName)
{
QFileInfo info(fileName); //创建文件信息对象
qint64 size=info.size(); //文件大小
QDateTime createTime=info.created(); //文件创建时间
QDateTime lastMTime=info.lastModified();//文件最近修改时间
QDateTime lastRTime=info.lastRead(); //文件最近访问时间
//文件的属性信息
bool bIsDir=info.isDir(); //是否是目录
bool bIsFile=info.isFile(); //是否是文件
bool bIsSymLink=info.isSymLink(); //是否是符号链接
bool bIsHidden=info.isHidden(); //是否是隐藏文件
bool bIsReadable=info.isReadable(); //是否可读
bool bIsWritable=info.isWritable(); //是否可写
bool bIsExcutable=info.isExecutable(); //是否可执行
//对界面中的各个编辑条和多选按钮进行设置
ui->fileSizeEdit->setText(QString::number(size));
ui->fileCreateLineEdit->setText(createTime.toString());
ui->fileModifyLineEdit->setText(lastMTime.toString());
ui->fileReadLineEdit->setText(lastRTime.toString());
ui->isDirCheckBox->setChecked(bIsDir);
ui->isFileCheckBox->setChecked(bIsFile);
ui->isSymLinkCheckBox->setChecked(bIsSymLink);
ui->isHindCheckBox->setChecked(bIsHidden);
ui->isReadableCheckBox->setChecked(bIsReadable);
ui->isWritedableCheckBox->setChecked(bIsWritable);
ui->isExecutableCheckBox->setChecked(bIsExcutable);
}
总结
学了Qt也有一段时间了感觉学Qt有一个比较难的一点就是有特别多的单词要记,但是Qt很多的方法都是很容易让人看懂的(见方法就知道是干什么的),还是得多去练习,熟能生巧。
上面主要用到的方法有:
//在这就以info为文件信息对象名了
方法 | 意义) |
---|---|
QFileInfo info(fileName) | 创建文件信息对象(以文件路径为参数) |
info.size() | 文件大小 |
info.created() | 文件创建时间 |
infor.lastModified() | 文件最近修改时间 |
info.lastRead() | 文件最近访问时间 |
info.isDir() | 是否为目录 |
info.isFile() | 是否为文件 |
info.isSymLink() | 是否为符号链接 |
info.isHidden() | 是否为隐藏文件 |
info.isReadable() | 是否可读 |
info.isWritable | 是否可写 |
info.isExecutable() | 是否可执行 |