QTreeWidget是一种树形的部件,它以树的形式显示各个项,它的每个项使用QTreeWidgetItem来表示。QTreeWidgetItem的值的表示都是用QStringList来表示的。简单的说明一下:
代码:
#include <QApplication>
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <QStringList>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QTreeWidget* treeWidget = new QTreeWidget;
treeWidget->setWindowTitle("QTreeWidget"); //设定头项名称
treeWidget->setHeaderLabels(QStringList()<<"Key"<<"Value"); //设定各个项
QTreeWidgetItem* A = new QTreeWidgetItem(QStringList()<<"A");
A->setIcon(0, QIcon("images/data.png"));
A->setCheckState(0, Qt::Checked);
QTreeWidgetItem* B = new QTreeWidgetItem(QStringList()<<"B");
B->setIcon(0, QIcon("images/decision.png"));
B->setCheckState(0, Qt::Checked);
QTreeWidgetItem* C = new QTreeWidgetItem(QStringList()<<"C");
C->setIcon(0, QIcon("images/process.png"));
C->setCheckState(0, Qt::Checked);
treeWidget->addTopLevelItem(A);
treeWidget->addTopLevelItem(B);
treeWidget->addTopLevelItem(C);
for(int i=0; i<3; ++i)
{
QStringList columItemList;
QTreeWidgetItem *child;
QString key, value;
key += "a" + QString::number(i);
value += QString::number(i);
columItemList<<key<<value;
child = new QTreeWidgetItem(columItemList);
A->addChild(child);
}
for(int i=0; i<3; ++i) {
QStringList columItemList;
QTreeWidgetItem *child;
QString key, value;
key += "b" + QString::number(i);
value += QString::number(i);
columItemList<<key<<value;
child = new QTreeWidgetItem(columItemList);
B->addChild(child);
}
for(int i=0; i<3; ++i) {
QStringList columItemList;
QTreeWidgetItem *child;
QString key, value;
key += "c" + QString::number(i);
value += QString::number(i);
columItemList<<key<<value;
child = new QTreeWidgetItem(columItemList);
C->addChild(child);
}
treeWidget->show();
return app.exec();
}
最顶层的项用addTopLevelItem来加入,每个项的子项用addChild来加入。
运行的结果如下图:
在上面的代码中,也可以对每个子项加入图标和检测。