Qt之简单的窗口程序访问电脑文件

首先我们要建立一个简单的窗口程序访问文件的具体信息,当然是先建立好一个项目。

主要就是选择桌面的应用程序,后面的选项其实并没有什么影响,选择Widget还是mainwindows或则Dialog都是可以的。

第二步设计窗体

 主体思想就是当我们点击完三个点点的小按钮的时候就可以访问电脑文件,选中文件时就可以查询到文件的信息,并且显示到窗口程序里。

第三步设计槽函数

利用按钮创建一个点击的槽函数

点击完以后就显示文件信息,必定需要另外的函数辅助。

点击时具体代码

void FileInfo::on_pushButton_clicked()
{
    QString fileName=QFileDialog::getOpenFileName(this,"打开文件",
                                 ".","files(*)");
    //getOPenFilename 他会返回一个选中文件的名字

    ui->fileName_lineEdit->setText(fileName);
    getFileInfo(fileName);

}

这里需要用到QFileDialog的getOpenFileName方法,它就会在我们选中文件的时候,将文件的名称返回。

利用这一点,我们可以创建一个辅助函数getFileInfo传进这个文件的名称,利用这个名称,继续查询文件的具体信息。

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();//文件最近访问时间

    //文件的属性i信息
    bool bIsDir=info.isDir();
    bool bIsFile=info.isFile();
    bool bIsSysmLink=info.isSymLink();
    bool bIsHidden=info.isHidden();
    bool bIsRead=info.isReadable();
    bool bIsWrite=info.isWritable();
    bool bIsExecute=info.isExecutable();

    ui->fileSize_lineEdit->setText(QString::number(size));
    ui->fileCreate_lineEdit->setText(createTime.toString());
    ui->fileModify_lineEdit->setText(lastMtime.toString());
    ui->fileRead_lineEdit->setText(lastRTime.toString());

    ui->isDircheckBox->setChecked(bIsDir);
    ui->isFilecheckBox->setChecked(bIsFile);
    ui->isSysmcheckBox->setChecked(bIsSysmLink);
    ui->isHiddencheckBox->setChecked(bIsHidden);
    ui->isReadcheckBox->setChecked(bIsRead);
    ui->isWritecheckBox->setChecked(bIsWrite);
    ui->isExecutecheckBox->setChecked(bIsExecute);




}

完整代码:

头文件


#ifndef FILEINFO_H
#define FILEINFO_H

#include <QWidget>

namespace Ui {
class FileInfo;
}

class FileInfo : public QWidget
{
    Q_OBJECT

public:
    explicit FileInfo(QWidget *parent = 0);
    ~FileInfo();
    void getFileInfo(QString &fileName);
private slots:
    void on_pushButton_clicked();

private:
    Ui::FileInfo *ui;
};

#endif // FILEINFO_H

cpp文件:

#include "fileinfo.h"
#include "ui_fileinfo.h"
#include<QFileInfo>
#include<QDateTime>
#include<QFileDialog>
FileInfo::FileInfo(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::FileInfo)
{
    ui->setupUi(this);
}

FileInfo::~FileInfo()
{
    delete ui;
}

void FileInfo::getFileInfo(QString &fileName)
{
    QFileInfo info(fileName);

    qint64 size=info.size();//文件大小
    QDateTime createTime=info.created();//获取文件创建时间
    QDateTime lastMtime=info.lastModified();//文件最近修改时间
    QDateTime lastRTime=info.lastRead();//文件最近访问时间

    //文件的属性i信息
    bool bIsDir=info.isDir();
    bool bIsFile=info.isFile();
    bool bIsSysmLink=info.isSymLink();
    bool bIsHidden=info.isHidden();
    bool bIsRead=info.isReadable();
    bool bIsWrite=info.isWritable();
    bool bIsExecute=info.isExecutable();

    ui->fileSize_lineEdit->setText(QString::number(size));
    ui->fileCreate_lineEdit->setText(createTime.toString());
    ui->fileModify_lineEdit->setText(lastMtime.toString());
    ui->fileRead_lineEdit->setText(lastRTime.toString());

    ui->isDircheckBox->setChecked(bIsDir);
    ui->isFilecheckBox->setChecked(bIsFile);
    ui->isSysmcheckBox->setChecked(bIsSysmLink);
    ui->isHiddencheckBox->setChecked(bIsHidden);
    ui->isReadcheckBox->setChecked(bIsRead);
    ui->isWritecheckBox->setChecked(bIsWrite);
    ui->isExecutecheckBox->setChecked(bIsExecute);




}

void FileInfo::on_pushButton_clicked()
{
    QString fileName=QFileDialog::getOpenFileName(this,"打开文件",
                                 ".","files(*)");
    //getOPenFilename 他会返回一个选中文件的名字

    ui->fileName_lineEdit->setText(fileName);
    getFileInfo(fileName);

}

运行结果:

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值