//构建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);
//遍历目录函数(这种方式不可取,在文件多的时候太慢,应该采用打开文件夹得时候去读取信息,可能快一些)
//一次将文件遍历插入QtreeWidget
void 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);
}
}
}
效果: