Qt编程24:QTreeWidget简单使用

来源:互联网 发布:c语言开发erp 编辑:程序博客网 时间:2024/05/17 06:50
//构建tree对象    m_tree = new QTreeWidget(this);    m_tree->setHeaderLabels(QStringList()<<"名称"<<"大小"<<"修改日期");    //设置最后一行填充    m_tree->header()->setStretchLastSection(true);    //设置表头文字颜色    m_tree->headerItem()->setTextColor(0,QColor(Qt::gray));    m_tree->headerItem()->setTextColor(1,QColor(Qt::gray));    m_tree->headerItem()->setTextColor(2,QColor(Qt::gray));    //设置表头文字字体    m_tree->header()->setFont(QFont("黑体",12,QFont::Bold));    //设置表格可以排序    m_tree->setSortingEnabled(true);    //设置列宽    m_tree->setColumnWidth(0,200);    m_tree->setColumnWidth(1,100);    m_tree->setColumnWidth(2,300);    //设置表头字段是否可拖动    m_tree->header()->setSectionsMovable(false);    //设置文字隐藏模式    m_tree->setTextElideMode(Qt::ElideRight);    //设置调色板    QPalette pal;    //设置行交替颜色    pal.setColor(QPalette::AlternateBase,QColor(0, 220,220));    //设置文字颜色    pal.setColor(QPalette::Text,QColor(Qt::red));    m_tree->setPalette(pal);    //设置行交替颜色    //m_tree->setAlternatingRowColors(true);    ui->verticalLayout->addWidget(m_tree);    //将    QFileInfo fInfo("G:\\");    QFileIconProvider iconp;    QIcon icon = iconp.icon(fInfo);    if(fInfo.isRoot())    {    }    topItem = new QTreeWidgetItem();    topItem->setText(0,"G:\\");    topItem->setIcon(0,icon);    topItem->setText(1,"");    topItem->setText(2,fInfo.lastModified().toString("yyyy-MM-dd hh:mm:ss zzz"));    m_tree->addTopLevelItem(topItem);    //遍历目录将文件属性加入QTreeWidget    traverDir("G:\\",topItem);

 

//遍历目录函数(这种方式不可取,在文件多的时候太慢,应该采用打开文件夹得时候去读取信息,可能快一些)

//一次将文件遍历插入QtreeWidgetvoid Widget::traverDir(QString dirPath,QTreeWidgetItem *&tmpItem){    QDir dir(dirPath);    foreach(QFileInfo fInfo,dir.entryInfoList())    {        if(fInfo.fileName().startsWith("."))        {            continue;        }        if(fInfo.isFile())        {            QString fileName = fInfo.fileName();            QFileIconProvider iconp;            QIcon icon = iconp.icon(fInfo);            QTreeWidgetItem *item = new QTreeWidgetItem();            item->setText(0,fileName);            item->setIcon(0,icon);            item->setText(1,QString::number(fInfo.size(),10));            item->setText(2,fInfo.lastModified().toString("yyyy-MM-dd hh:mm:ss zzz"));            tmpItem->addChild(item);        }        else if(fInfo.isDir())        {            QString fileName = fInfo.fileName();            QFileIconProvider iconp;            QIcon icon = iconp.icon(fInfo);            QTreeWidgetItem *item = new QTreeWidgetItem();            item->setText(0,fileName);            item->setIcon(0,icon);            item->setText(1,"");            item->setText(2,fInfo.lastModified().toString("yyyy-MM-dd hh:mm:ss zzz"));            item->setCheckState(0,Qt::Unchecked);            tmpItem->addChild(item);            traverDir(fInfo.filePath(),item);        }    }}

效果:


 

0 0
原创粉丝点击