【第七篇】Qt学习与使用---TreeView目录以及其点击事件

1、目的

    想要写一个目录,可以列出某一路径下所有的 文件,并且可以点击打开。(初始是想做一个阅读器程序 )

2、思路

(1)首先需要将文件名称以目录的 形式列出。

(2)可以打开不同类型的文件,如  文件夹,PDF,doc,csv, 图片等等。

(3)其他。

3、关键知识准备

(1)QTreeView

文件名称自动分层获取。如下图所示,层数可以层数可以任意多层。

得到目录的核心代码:

//---------------------------------------
    filepath = "E:\\keilworks";
    //----------------------------------------
    model           = new QStandardItemModel();
    findAllFile(filepath);
    model->setHeaderData(0, Qt::Horizontal, filepath); //设置头数据
    //----------------------------------------
    ui->treeView->setModel(model);
bool MainWindow::findAllFile(const QString &fromDir,QStandardItem *itemX)
{
    QDir sourceDir(fromDir);
    QFileInfoList fileInfoList = sourceDir.entryInfoList();
    foreach(QFileInfo fileInfo, fileInfoList)
    {
        if(fileInfo.fileName() == "." || fileInfo.fileName() == "..")
            continue;

        //
        QStandardItem *item = new QStandardItem(fileInfo.fileName());

        if(fileInfo.isDir())
        {
          item->setIcon(QIcon(":/picture/Dir.png"));
            if(!findAllFile(fileInfo.filePath(),item))
            {
                return false;
            }
        }
        else
        {
            item->setIcon(QIcon(":/picture/TexT.png"));
        }

        //----------(记录文件名,显示)
        if(itemX==NULL)model->setItem(model->rowCount(), 0, item);
        else itemX->appendRow(item);

    }
    return true;
}

(2)双击获取文件名称和文件地址。

 

(3)打开PDF等文件

 

4、未编辑完,待续。。。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值