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来加入。
运行的结果如下图:
在上面的代码中,也可以对每个子项加入图标和检测。
http://blog.csdn.net/fjb2080/article/details/4924395