QT QTreeWidget 控件 学习笔记

首先我们了解一下 QTreeWidget的属性

1.QTreeWidget 控件的创建

QTreeWidget  tw;//单独的树

QTreeWidget  tw(&w);//在w界面里的树

2.往tw中添加子节点

创建一个新结点,设置结点中包含的数据(strings),将该结点添加到指定的parent树形结构中

QTreewidgetItem(QTreewidget *parent,const QstringList sstrings,int type = Type)

创建一个新结点,将其插入到parent树形结构中 preceding 结点之后的位置QTreewidgetItem(QTreewidget *parent,QTreewidgetitem *preceding,int type =Type)

创建一个新结点,将其添加到指定parent 结点中,作为 parent 结点的子结点QTreewidgetItem(QTreewidgetItem *parent, int type = Type)

创建一个新结点,指定结点中包含的文本内容(strings),将其添加到指定parent结点中,作为parent的子结点

TreewidgetItem(QTreewidgetItem *parent,const QstringList&strings, int type = Type)

创建要给新结点,将其插入到 parent结点中 preceding结点之后的位置。QTreewidgetitem(QTreewidgetItem*parent,QTreewidgetItem*preceding, int type = Type)

3.QTreewidgetitem提供了很多成员方法

成员方法 功能
void QTreeWidgetltem:addChild(QTreeWidgetltem *child) 为当前结点添加子结点。
void QTreeWidgetltem:addChildren(constQList &children) 一次性为当前结点添加多个子结点。
QTreeWidgetltem *QTreeWidgetltem:child(int index) const 获得当前结点的第index个子结点。
QTreeWidgetltem *QTreeWidgetltem:parent() const 获得当前结点的父结点。
int QTreeWidgetltem::childCount() const 获得当前结点拥有的子结点数。
void QTreeWidgetltem:setCheckState(int column,Qt::CheckState state) 设置当前结点第column列的复选框状态。
void QTreeWidgetltem::setlcon(int column,const Qlcon &icon) 设置当前结点第column列的icon图标。
void QTreeWidgetltem::setText(int column, const QString&text) 设置当前结点第column列的文本。

4.QTreeWidget 的实际应用

成员方法 功能
void setColumnCount(int columns) 设置每个结点的列数。
void setHeaderHidden(bool hide) 设置控件的表头是否隐藏。
void QTreeWVidget::addTopLevelltem(QTreeWidgetltem *item) 在树形控件中添加顶层结点。
void QTreeWidget::setHeaderLabels(const QStringList &labels) 自定义控件中所有列的表头的文本内容。
void QTreeWidget::setltemWidget(QTreeWidgetltem *item, intcolumn, QWidget *widget) 在item结点中第column列的位置添加一个widget控件。
void QTreeWidget::removeltemWidget(QTreeWidgetltem *item,intcoulmn) 移除 item结点第 column列处的控件
void QWidget::resize(int w, int h) 设置整个控件的尺寸。

我们创建了一个这样的树行控件 

点击文字  他会自动展开他的子节点

QT QTreeWidget 控件 学习笔记_第1张图片

完整代码如下

#ifndef WIDGET_H
#define WIDGET_H

#include 

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H
#include "widget.h"

#include 
#include 
#include 
#include 
#include 
#include 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;



    QTreeWidget tw(&w);

    tw.move(100,50);
    tw.resize(300,500);

    QTreeWidgetItem *pTop=new QTreeWidgetItem(&tw);
    pTop->setText(0,"网址");

    tw.setColumnCount(2);
    pTop->addChild(new QTreeWidgetItem(pTop,QStringList()<<"百度"<<"www.baidu.com") );
    QTreeWidgetItem *pQQ=new QTreeWidgetItem(pTop,QStringList()<<"腾讯"<<"www.qq.com" );
    new QTreeWidgetItem(pQQ,QStringList()<<"马化腾");
    QObject::connect(&tw,&QTreeWidget::itemClicked,&tw,&QTreeWidget::expandItem);
    w.show();
    return a.exec();
}
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

你可能感兴趣的:(qt,学习,ui)