QTreeWidget

QTreeWidget是使用來展示樹狀結構的資料,和上篇的QListWidget類似,這個類別需要和另一個輔助類別QTreeWidgetItem一起使用,這邊我們的QTreeWidget有兩個根節點,其中一個有兩個子節點。


widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <QStringList>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
private:
    QTreeWidget *myTreeWidget;
};

#endif 

widget.cpp

#include "widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent)
{
    myTreeWidget = new QTreeWidget(this);
    QStringList headers;
    headers << "內容" << "編號";
    myTreeWidget->setHeaderLabels(headers); //設定QTreeWidget的標頭  
    myTreeWidget->setWindowTitle(tr("QTreeWidget"));
    QTreeWidgetItem *root1 = new QTreeWidgetItem(myTreeWidget, QStringList()<<QString("根節點1")<<"0");
    QTreeWidgetItem *root2 = new QTreeWidgetItem(myTreeWidget, QStringList()<<QString("根節點2")<<"3");
    QTreeWidgetItem *leaf1 = new QTreeWidgetItem(root1, QStringList()<<QString("子節點1")<<"1");
    QTreeWidgetItem *leaf2 = new QTreeWidgetItem(root1, QStringList()<<QString("子節點2")<<"2");
    leaf2->setCheckState(0, Qt::Checked);   //設定此子節點有可勾選的選項

    QList<QTreeWidgetItem *> rootList;
    rootList << root1 << root2;   //將所有根節點存入容器
    myTreeWidget->insertTopLevelItems(0, rootList);  //設定此容器內容為QTreeWidget的根節點
    myTreeWidget->resize(250,200);
}

main.cpp

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.resize(250,200);
    w.show();

    return a.exec();
}

QTreeWidget

QTreeWidget


QTreeWidgetItem(QTreeWidget *parent, const QStringList &strings, int type = Type);
  • 第一個參數指定這個項目的父類別,可能為QTreeWidget,或者為QTreeWidgetItem。
  • 第二個參數指定此項目的文字,要注意是QStringList類型,而不是QString類型。
  • 第三個參數指定其類型。