QTreeWidget筆記


1、QTreeWidget繼承自QTreeView.

2、頭文件:QTreeWidget

3、簡單使用:

#include "mainwindow.h"
#include <QApplication>
#include <QTreeWidget>
#include <QTreeWidgetItem>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTreeWidget tree;

    tree.setColumnCount(1);

    tree.setHeaderLabel(QString("Tree HeaderLabel"));

    QTreeWidgetItem *root = new QTreeWidgetItem(&tree,QStringList(QString("Root node")));

    new QTreeWidgetItem(root,QStringList(QString("item1")));

    QTreeWidgetItem *item2 = new QTreeWidgetItem(root,QStringList(QString("item2")));

    item2->setCheckState(0,Qt::Checked);

    QList<QTreeWidgetItem *> items;

    items<<root;

    tree.insertTopLevelItems(0,items);

    tree.show();


    return a.exec();
}

QTreeWidgetItem(QTreeWidget *parent, const QStringList &strings, int type = Type); 

其中有上面一行的構造函數。第一個參數用於指定這個項屬於哪個樹。

代碼首先添加了第一個葉節點,之后又添加一個,而這個則設置了可選標記。最后,我們將這個 root 添加到一個
QTreeWidgetItem的列表,作為 QTreeWidget 的數據項。此時你應該想到,既然
QTreeWidget 接受 QList 作為項的數據,它就能夠支持多棵樹的一起顯示,而不僅僅是單
根樹。

修改部分代碼:

#include "mainwindow.h"
#include <QApplication>
#include <QTreeWidget>
#include <QTreeWidgetItem>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTreeWidget tree;

    //tree.setColumnCount(1);

    //tree.setHeaderLabel(QString("Tree HeaderLabel"));

    QStringList headers;

    headers<<"Name"<<"Number";

    tree.setHeaderLabels(headers);

    QStringList rootText;

    rootText<<"Root Node"<<"this is a text";

    //QTreeWidgetItem *root = new QTreeWidgetItem(&tree,QStringList(QString("Root node")));

    QTreeWidgetItem *root = new QTreeWidgetItem(&tree,rootText);

    new QTreeWidgetItem(root,QStringList(QString("item1")));

    QTreeWidgetItem *item2 = new QTreeWidgetItem(root,QStringList(QString("item2")));

    item2->setCheckState(0,Qt::Checked);

    QList<QTreeWidgetItem *> items;

    items<<root;

    tree.insertTopLevelItems(0,items);

    tree.show();


    return a.exec();
}

運行效果:

這次我們沒有使用 setColumnCount(),而是直接使用 QStringList 設置了 headers,也就
是樹的表頭。接下來我們使用的還是 QStringList 設置數據。這樣,我們實現的是帶有層次
結構的樹狀表格。利用這一屬性,我們可以比較簡單地實現類似 Windows 資源管理器的界
面。

 

如果你不需要顯示這個表頭,可以調用 setHeaderHidden()函數將其隱藏。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM