Qt-QTreeWidget

20 篇文章 0 订阅

ui_qtreewidgettest.h

/********************************************************************************
** Form generated from reading UI file 'qtreewidgettest.ui'
**
** Created by: Qt User Interface Compiler version 5.14.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_QTREEWIDGETTEST_H
#define UI_QTREEWIDGETTEST_H

#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QTreeWidget>
#include <QtWidgets/QWidget>

QT_BEGIN_NAMESPACE

class Ui_QTreeWidgetTestClass
{
public:
    QTreeWidget *treeWidget;

    void setupUi(QWidget *QTreeWidgetTestClass)
    {
        if (QTreeWidgetTestClass->objectName().isEmpty())
            QTreeWidgetTestClass->setObjectName(QString::fromUtf8("QTreeWidgetTestClass"));
        QTreeWidgetTestClass->resize(748, 540);
        treeWidget = new QTreeWidget(QTreeWidgetTestClass);
        new QTreeWidgetItem(treeWidget);
        QTreeWidgetItem *__qtreewidgetitem = new QTreeWidgetItem(treeWidget);
        QTreeWidgetItem *__qtreewidgetitem1 = new QTreeWidgetItem(__qtreewidgetitem);
        QTreeWidgetItem *__qtreewidgetitem2 = new QTreeWidgetItem(__qtreewidgetitem1);
        QTreeWidgetItem *__qtreewidgetitem3 = new QTreeWidgetItem(__qtreewidgetitem2);
        new QTreeWidgetItem(__qtreewidgetitem3);
        new QTreeWidgetItem(treeWidget);
        treeWidget->setObjectName(QString::fromUtf8("treeWidget"));
        treeWidget->setGeometry(QRect(50, 60, 631, 381));
        treeWidget->setStyleSheet(QString::fromUtf8("QTreeWidget{\n"
"	background-color: #FEFFF7;\n"
"	alternate-background-color: #CBE8D9;\n"
"}\n"
"\n"
"QTreeWidget::item:hover{\n"
"	background-color: #C5DAFF;\n"
"}\n"
"\n"
"QTreeWidget::item:selected{\n"
"	background-color: #DEBBE8;\n"
"}\n"
"QTreeWidget::branch{\n"
"	\n"
"	/*background-color: rgb(65, 48, 255);*/\n"
"}\n"
"\n"
" QTreeView::branch:has-siblings:!adjoins-item {\n"
"      border-image: url(vline.png) 0;\n"
"  }\n"
"  QTreeView::branch:has-siblings:adjoins-item {\n"
"      border-image: url(branch-more.png) 0;\n"
"  }\n"
"  QTreeView::branch:!has-children:!has-siblings:adjoins-item {\n"
"      border-image: url(branch-end.png) 0;\n"
"  }\n"
"  QTreeView::branch:has-children:!has-siblings:closed,\n"
"  QTreeView::branch:closed:has-children:has-siblings {\n"
"          border-image: none; image: url(branch-closed.png);\n"
"  }\n"
"  QTreeView::branch:open:has-children:!has-siblings,\n"
"  QTreeView::branch:open:has-children:has-siblings  {\n"
"          border-image: none;\n"
"          image: url(b"
                        "ranch-open.png);\n"
"  }\n"
"QHeaderView::section{\n"
"	\n"
"	background-color:  #FFE0D8;\n"
"	border:1px solid #C5DAFF;\n"
"\n"
"}\n"
"\n"
""));

        retranslateUi(QTreeWidgetTestClass);
        QObject::connect(treeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)), QTreeWidgetTestClass, SLOT(Click(QTreeWidgetItem*)));
        QObject::connect(treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), QTreeWidgetTestClass, SLOT(Double(QTreeWidgetItem*)));
        QObject::connect(treeWidget, SIGNAL(itemExpanded(QTreeWidgetItem*)), QTreeWidgetTestClass, SLOT(Expand(QTreeWidgetItem*)));
        QObject::connect(treeWidget, SIGNAL(itemEntered(QTreeWidgetItem*,int)), QTreeWidgetTestClass, SLOT(Hover(QTreeWidgetItem*)));

        QMetaObject::connectSlotsByName(QTreeWidgetTestClass);
    } // setupUi

    void retranslateUi(QWidget *QTreeWidgetTestClass)
    {
        QTreeWidgetTestClass->setWindowTitle(QCoreApplication::translate("QTreeWidgetTestClass", "QTreeWidgetTest", nullptr));
        QTreeWidgetItem *___qtreewidgetitem = treeWidget->headerItem();
        ___qtreewidgetitem->setText(2, QCoreApplication::translate("QTreeWidgetTestClass", "\346\226\260\345\273\272\345\210\2273", nullptr));
        ___qtreewidgetitem->setText(1, QCoreApplication::translate("QTreeWidgetTestClass", "\346\226\260\345\273\272\345\210\2271", nullptr));
        ___qtreewidgetitem->setText(0, QCoreApplication::translate("QTreeWidgetTestClass", "\346\226\260\345\273\272\345\210\227", nullptr));

        const bool __sortingEnabled = treeWidget->isSortingEnabled();
        treeWidget->setSortingEnabled(false);
        QTreeWidgetItem *___qtreewidgetitem1 = treeWidget->topLevelItem(0);
        ___qtreewidgetitem1->setText(2, QCoreApplication::translate("QTreeWidgetTestClass", "03", nullptr));
        ___qtreewidgetitem1->setText(1, QCoreApplication::translate("QTreeWidgetTestClass", "02", nullptr));
        ___qtreewidgetitem1->setText(0, QCoreApplication::translate("QTreeWidgetTestClass", "01", nullptr));
        QTreeWidgetItem *___qtreewidgetitem2 = treeWidget->topLevelItem(1);
        ___qtreewidgetitem2->setText(2, QCoreApplication::translate("QTreeWidgetTestClass", "13", nullptr));
        ___qtreewidgetitem2->setText(1, QCoreApplication::translate("QTreeWidgetTestClass", "12", nullptr));
        ___qtreewidgetitem2->setText(0, QCoreApplication::translate("QTreeWidgetTestClass", "11", nullptr));
        QTreeWidgetItem *___qtreewidgetitem3 = ___qtreewidgetitem2->child(0);
        ___qtreewidgetitem3->setText(2, QCoreApplication::translate("QTreeWidgetTestClass", "123", nullptr));
        ___qtreewidgetitem3->setText(1, QCoreApplication::translate("QTreeWidgetTestClass", "122", nullptr));
        ___qtreewidgetitem3->setText(0, QCoreApplication::translate("QTreeWidgetTestClass", "121", nullptr));
        QTreeWidgetItem *___qtreewidgetitem4 = ___qtreewidgetitem3->child(0);
        ___qtreewidgetitem4->setText(2, QCoreApplication::translate("QTreeWidgetTestClass", "1213", nullptr));
        ___qtreewidgetitem4->setText(1, QCoreApplication::translate("QTreeWidgetTestClass", "1212", nullptr));
        ___qtreewidgetitem4->setText(0, QCoreApplication::translate("QTreeWidgetTestClass", "1211", nullptr));
        QTreeWidgetItem *___qtreewidgetitem5 = ___qtreewidgetitem4->child(0);
        ___qtreewidgetitem5->setText(2, QCoreApplication::translate("QTreeWidgetTestClass", "1223", nullptr));
        ___qtreewidgetitem5->setText(1, QCoreApplication::translate("QTreeWidgetTestClass", "1222", nullptr));
        ___qtreewidgetitem5->setText(0, QCoreApplication::translate("QTreeWidgetTestClass", "1221", nullptr));
        QTreeWidgetItem *___qtreewidgetitem6 = ___qtreewidgetitem5->child(0);
        ___qtreewidgetitem6->setText(0, QCoreApplication::translate("QTreeWidgetTestClass", "\346\226\260\345\273\272\345\255\220\351\241\271\347\233\256", nullptr));
        QTreeWidgetItem *___qtreewidgetitem7 = treeWidget->topLevelItem(2);
        ___qtreewidgetitem7->setText(2, QCoreApplication::translate("QTreeWidgetTestClass", "23", nullptr));
        ___qtreewidgetitem7->setText(1, QCoreApplication::translate("QTreeWidgetTestClass", "22", nullptr));
        ___qtreewidgetitem7->setText(0, QCoreApplication::translate("QTreeWidgetTestClass", "21", nullptr));
        treeWidget->setSortingEnabled(__sortingEnabled);

    } // retranslateUi

};

namespace Ui {
    class QTreeWidgetTestClass: public Ui_QTreeWidgetTestClass {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_QTREEWIDGETTEST_H

qtreewidgettest.h 

#pragma once

#include <QtWidgets/QWidget>
#include "ui_qtreewidgettest.h"

class QTreeWidgetTest : public QWidget
{
    Q_OBJECT

public:
    QTreeWidgetTest(QWidget *parent = Q_NULLPTR);
public slots:
    void Click(QTreeWidgetItem *item);
    void Double(QTreeWidgetItem *item);
    void Hover(QTreeWidgetItem *item);
    void Expand(QTreeWidgetItem *item);
private:
    Ui::QTreeWidgetTestClass ui;
};

qtreewidgettest.cpp

#include "qtreewidgettest.h"
#include <QPushButton>
#include <QDebug>
QTreeWidgetTest::QTreeWidgetTest(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);

    //清理测试的标题
    ui.treeWidget->setHeaderItem(new QTreeWidgetItem());

    //ui.treeWidget->setColumnCount(3);
    //清理测试数据
    ui.treeWidget->clear();
    //ui.treeWidget->setColumnCount(3); //随着添加动态改变
    ui.treeWidget->headerItem()->setText(0,QStringLiteral("标题1"));
    ui.treeWidget->headerItem()->setText(1,"head2");
    ui.treeWidget->headerItem()->setText(2,"head3");
    ui.treeWidget->headerItem()->setText(3,"head4");


    //插入数据
    //结尾处插入
    ui.treeWidget->addTopLevelItem(new QTreeWidgetItem());
    ui.treeWidget->topLevelItem(0)->setText(0,"tree node1");
    ui.treeWidget->topLevelItem(0)->setText(1, "tree node1 col2");

    ui.treeWidget->addTopLevelItem(new QTreeWidgetItem({ "tree node2 col1","tree node2 col2" }));

    //开头插入
    ui.treeWidget->insertTopLevelItem(0, new QTreeWidgetItem({ "tree node1-1 col1","tree node1-1 col2" }));

    //结尾插入
    QTreeWidgetItem* node = new QTreeWidgetItem(ui.treeWidget);
    node->setText(0,"new ");

    //插入子节点,topLevelItem传入列数
    ui.treeWidget->topLevelItem(3)->addChild(new QTreeWidgetItem({"child1"}));
    ui.treeWidget->topLevelItem(3)->addChild(new QTreeWidgetItem({ "child2" }));
    ui.treeWidget->topLevelItem(3)->addChild(new QTreeWidgetItem({ "child3" }));

    //插入孙节点,必须先有子节点
    ui.treeWidget->topLevelItem(3)->child(0)->addChild(new QTreeWidgetItem({ "grandSon" }));

    ui.treeWidget->topLevelItem(1)->addChild(new QTreeWidgetItem({"2-child1","2-chlid2","2-chlid3" }));

    //插入图标
    ui.treeWidget->setIconSize(QSize(60, 60));
    ui.treeWidget->topLevelItem(0)->setIcon(0, QIcon("qt.PNG"));

    //插入Widget控件
    QPushButton* but = new QPushButton("Test");
    ui.treeWidget->setItemWidget(ui.treeWidget->topLevelItem(1),0,but);

    //打开鼠标跟踪
    ui.treeWidget->setMouseTracking(true);
}
void QTreeWidgetTest::Click(QTreeWidgetItem* item)
{
    qDebug() << "Click " << item->text(0);
}
void QTreeWidgetTest::Double(QTreeWidgetItem* item)
{
    qDebug() << "Double " << item->text(0);
}
void QTreeWidgetTest::Hover(QTreeWidgetItem* item)
{
    qDebug() << "Hover " << item->text(0);

    ui.treeWidget->expandItem(item);
}
void QTreeWidgetTest::Expand(QTreeWidgetItem* item)
{
    qDebug() << "Expand " << item->text(0);

    清空历史数据
    //while (item->childCount() > 0)
    //{
    //    item->removeChild(item->child(0));
    //}

    动态插入子节点
    //item->addChild(new QTreeWidgetItem({"new tree1"}));
    //item->addChild(new QTreeWidgetItem({ "new tree2" }));
    //item->addChild(new QTreeWidgetItem({ "new tree3" }));
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值