【QT】QListWidget设计一个软件显示目录下的文件属性

问题交流请联系-》群名:IT项目交流群    群号:245022761

设计目标

      QListWidget设计一个软件显示目录下的文件属性

      用QFileInfo拿文件属性,

      目录可以用QDir中的获取文件信息,文件名称

      

实现过程

    设计自定义窗口如下,由3个QLabel组成,分别显示图片、名称、大小

 

      

设置自定义组件添加内容接口

void itemform::set_info(QString pic, QString name, qint64 filesize)
{
    QPixmap pixmap(pic);
    ui->label_icon->setPixmap(pixmap);
    //ui->->setText(info);
    ui->label_name->setText(name);

    QString str = QString("%1").arg(filesize);
    ui->label_size->setText(str);
}

自定义窗口添加到QListWidget组件中  

itemform *form = new itemform();
form->set_info(":/dir.png", info.fileName(),info.size());
QListWidgetItem *item = new QListWidgetItem();
//设置Item的尺寸与form一致
item->setSizeHint(form->sizeHint());
ui->listWidget->addItem(item);
ui->listWidget->setItemWidget(item,form);

实现效果

关键代码

#include "fileattributeswin.h"
#include "itemform.h"
#include "ui_fileattributeswin.h"
#include <QFileDialog>
#include <QDir>

FileAttributesWin::FileAttributesWin(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::FileAttributesWin)
{
    ui->setupUi(this);
}

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

void FileAttributesWin::on_openDirBt_clicked()
{
    ui->listWidget->clear();
    //QString filter = "Text files (*.txt *.cpp *.c *.h)";
    QString filepath = QFileDialog::
           getExistingDirectory(this,"选择文件","./");
    ui->Edit_show->setText(filepath);

    QDir d(filepath);
    QFileInfoList list = d.entryInfoList();

    for(int i=0; i<list.size(); i++)
    {
       QFileInfo info = list.at(i);
       if(info.fileName()=="." || info.fileName()==".." )
       {
           i++;
           continue;
       }
       if(info.isDir())
       {
           info.size();//文件大小
           info.fileName();//文件名
           itemform *form = new itemform();
           form->set_info(":/dir.png", info.fileName(),info.size());
           QListWidgetItem *item = new QListWidgetItem();
           //设置Item的尺寸与form一致
           item->setSizeHint(form->sizeHint());
           ui->listWidget->addItem(item);
           ui->listWidget->setItemWidget(item,form);
       }
       if(info.isFile())
       {
           info.size();//文件大小
           info.fileName();//文件名

           itemform *form = new itemform();
           form->set_info(":/file.png", info.fileName(),info.size());
           QListWidgetItem *item = new QListWidgetItem();
           //设置Item的尺寸与form一致
           item->setSizeHint(form->sizeHint());
           ui->listWidget->addItem(item);
           ui->listWidget->setItemWidget(item,form);
       }
    }
}
发布了64 篇原创文章 · 获赞 82 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_40602000/article/details/97413038