QT 15--获取任何种类文件的某些文件属性:大小、创建时间、上次修改时间等等

1、

  • 首先说一些,如果是mainwindow的QT工程,如果打算做自己手写ui 界面的话,该如何将自己写的内容添加到mainwindow界面呢?
  • 方法为: 新建一个widget类,然后将所有零件都用布局布置好后,只需将总布局添加到widet,然后令this->setCentralWidget(widget)即可
  • 此次的Ui 界面就是自己写的,然后效果图是下面那个鬼样子
//需要的头文件
#include <QLineEdit>
#include <QPushButton>
#include <QMessageBox>
#include <QFileInfo>
#include <QLabel>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QWidget>


private:
    Ui::MainWindow *ui;
    QWidget *widget=new QWidget();
    QLabel *sizeLabel=new QLabel("size");
    QLabel *creatLabel=new QLabel("creat time");
    QLabel *lastEditLabel=new QLabel("last open time");
    QLabel *isDirLabel=new QLabel("is Dir?");
    QHBoxLayout *h1=new QHBoxLayout;
    QHBoxLayout *h2=new QHBoxLayout;

    QVBoxLayout *v1=new QVBoxLayout;
    QVBoxLayout *v2=new QVBoxLayout;
    QVBoxLayout *v3=new QVBoxLayout;


    QPushButton *exitButton=new QPushButton("exit");
    QPushButton *readButton=new QPushButton("read file");
    QLineEdit *sizeLineEdit=new QLineEdit;
    QLineEdit *creatLineEdit=new QLineEdit;
    QLineEdit *lastLineEdit=new QLineEdit;
    QLineEdit *isDirLineEdit=new QLineEdit ;
 private slots:
    void readFileInfo();//读取文件信息的槽函数
};


//mainwindow.cpp
#include <QFileDialog>
#include <QDateTime>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
   v1->addWidget(sizeLabel);
   v1->addWidget(creatLabel);
   v1->addWidget(lastEditLabel);
   v1->addWidget(isDirLabel);


   v2->addWidget(sizeLineEdit);
   v2->addWidget(creatLineEdit);
   v2->addWidget(lastLineEdit);
   v2->addWidget(isDirLineEdit);

   h1->addLayout(v1);
   h1->addLayout(v2);

   h2->addWidget(readButton);
   h2->addWidget(exitButton);

   v3->addLayout(h1);
   v3->addLayout(h2);
   widget->setLayout(v3);
   this->setCentralWidget(widget);
   QObject::connect(readButton,SIGNAL(clicked()),this,SLOT(readFileInfo()));
   QObject::connect(exitButton,SIGNAL (clicked()),this,SLOT(close()));
}
void MainWindow::readFileInfo()
{
    QString name=QFileDialog::getOpenFileName(this,"Open File",QDir::currentPath());
    QFileInfo info(name);
    sizeLineEdit->setText(QString::number(info.size()));

    creatLineEdit->setText(info.birthTime().toString());

    lastLineEdit->setText(info.lastRead().toString());

    if(info.isDir())
    {
        isDirLineEdit->setText("Yes");

    }
    else {
        isDirLineEdit->setText("No");
    }

}

在这里插入图片描述

  • 知识点讲解
  1. 获得文件名需要QFileDialog类;
  2. 利用QFileInfo类来打开文件,并获得其所有可能的信息。
  3. info.size()返回long long int型的数字。需要借助QString的number全局函数;
  4. info.birthTIme()返回QDateTime类型,需要借助toString()函数;
  5. info.lastRead()返回QDateTime类型,需要借助toString()函数;
  6. info.isDIr()返回是否是文件夹的布尔类型值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值