QTreewidget的应用

本文介绍了一个使用 Qt 框架实现的构件树设计,通过 QTreeWidget 展示了不同类型的建筑构件,包括主构件、次构件、面板等,并详细展示了如何创建和组织这些构件。
 
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QMenu>
#include<QMenuBar>
#include<QContextMenuEvent>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QTreeWidget>
#include<QTreeWidgetItem>
#include<QLineEdit>
#include<QPushButton>
#include <QCheckBox>
#include <QMessageBox>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
    Q_OBJECT
public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
private:
    Ui::Widget *ui;
   /* QTreeWidget   *treeWidget ;
    QTreeWidgetItem * newItem;
    QTreeWidgetItem *addSpace;
    QTreeWidgetItem *addPlate;
    QLineEdit * sortEdit;
    QPushButton *button ;*/
    QTreeWidget *treeWidget;
    QHBoxLayout *hLayout;
};
#endif // WIDGET_H


#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    treeWidget = new QTreeWidget ;
    treeWidget->setColumnCount(1);
    treeWidget->setStyleSheet("background-color:rgb(119, 133, 255)");
    treeWidget->setMaximumWidth(120);
    treeWidget->setMinimumHeight(200);
    //第一项
    treeWidget->setHeaderLabel("主构件");
    QTreeWidgetItem *tWidgetItem1  = new QTreeWidgetItem(treeWidget,
                                     QStringList(QString("钢柱")));
   // tWidgetItem1->setIcon(0,QIcon("xxx.png"));该语句可以加载背景图片
    QTreeWidgetItem *tWidgetItem1_1  = new QTreeWidgetItem(tWidgetItem1,
                                     QStringList(QString("钢梁")));
    QTreeWidgetItem *tWidgetItem1_2  = new QTreeWidgetItem(tWidgetItem1,
                                     QStringList(QString("吊车梁")));
    QTreeWidgetItem *tWidgetItem1_3  = new QTreeWidgetItem(tWidgetItem1,
                                     QStringList(QString("梴架")));
    QTreeWidgetItem *tWidgetItem1_4  = new QTreeWidgetItem(tWidgetItem1,
                                     QStringList(QString("格构架")));
    tWidgetItem1 ->addChild(tWidgetItem1_1 ); //添加子节点
    tWidgetItem1 ->addChild(tWidgetItem1_2 );
    tWidgetItem1 ->addChild(tWidgetItem1_3 );
    tWidgetItem1 ->addChild(tWidgetItem1_4 );
     //第二项
    QTreeWidgetItem *tWidgetItem2  = new QTreeWidgetItem(treeWidget,
                                     QStringList(QString("次构件")));
    QTreeWidgetItem *tWidgetItem2_1  = new QTreeWidgetItem(tWidgetItem2,
                                     QStringList(QString("水平支撑")));
    QTreeWidgetItem *tWidgetItem2_2  = new QTreeWidgetItem(tWidgetItem2,
                                     QStringList(QString("柱间支撑")));
    QTreeWidgetItem *tWidgetItem2_3  = new QTreeWidgetItem(tWidgetItem2,
                                     QStringList(QString("水平支撑")));
    QTreeWidgetItem *tWidgetItem2_4  = new QTreeWidgetItem(tWidgetItem2,
                                     QStringList(QString("檩条")));
    QTreeWidgetItem *tWidgetItem2_5  = new QTreeWidgetItem(tWidgetItem2,
                                     QStringList(QString("钢楼梯")));
    QTreeWidgetItem *tWidgetItem2_6  = new QTreeWidgetItem(tWidgetItem2,
                                     QStringList(QString("拉条")));
    QTreeWidgetItem *tWidgetItem2_7  = new QTreeWidgetItem(tWidgetItem2,
                                     QStringList(QString("隅撑")));
    QTreeWidgetItem *tWidgetItem2_8  = new QTreeWidgetItem(tWidgetItem2,
                                     QStringList(QString("平台")));
    QTreeWidgetItem *tWidgetItem2_9  = new QTreeWidgetItem(tWidgetItem2,
                                     QStringList(QString("天窗架")));
    QTreeWidgetItem *tWidgetItem2_10  = new QTreeWidgetItem(tWidgetItem2,
                                     QStringList(QString("爬梯")));
    QTreeWidgetItem *tWidgetItem2_11  = new QTreeWidgetItem(tWidgetItem2,
                                     QStringList(QString("栏杆")));
    QTreeWidgetItem *tWidgetItem2_12  = new QTreeWidgetItem(tWidgetItem2,
                                      QStringList(QString("天沟")));
    tWidgetItem2 ->addChild(tWidgetItem2_1 ); //添加子节点
    tWidgetItem2 ->addChild(tWidgetItem2_2 );
    tWidgetItem2 ->addChild(tWidgetItem2_3 );
    tWidgetItem2 ->addChild(tWidgetItem2_4 );
    tWidgetItem2 ->addChild(tWidgetItem2_5 );
    tWidgetItem2 ->addChild(tWidgetItem2_6 );
    tWidgetItem2 ->addChild(tWidgetItem2_7 );
    tWidgetItem2 ->addChild(tWidgetItem2_8 );
    tWidgetItem2 ->addChild(tWidgetItem2_9 );
    tWidgetItem2 ->addChild(tWidgetItem2_10 );
    tWidgetItem2 ->addChild(tWidgetItem2_11 );
   //第三列
    QTreeWidgetItem *tWidgetItem3  = new QTreeWidgetItem(treeWidget,
                                     QStringList(QString("面板")));
    QTreeWidgetItem *tWidgetItem3_1  = new QTreeWidgetItem(tWidgetItem3,
                                     QStringList(QString("墙面板")));
    QTreeWidgetItem *tWidgetItem3_2  = new QTreeWidgetItem(tWidgetItem3,
                                     QStringList(QString("屋面板")));
    QTreeWidgetItem *tWidgetItem3_3  = new QTreeWidgetItem(tWidgetItem3,
                                     QStringList(QString("楼承板")));
    QTreeWidgetItem *tWidgetItem3_4  = new QTreeWidgetItem(tWidgetItem3,
                                     QStringList(QString("采光板")));
    QTreeWidgetItem *tWidgetItem3_5 = new QTreeWidgetItem(tWidgetItem3,
                                     QStringList(QString("走道板")));
    QTreeWidgetItem *tWidgetItem3_6  = new QTreeWidgetItem(tWidgetItem3,
                                     QStringList(QString("格栅板")));
    tWidgetItem3 ->addChild(tWidgetItem3_1 ); //添加子节点
    tWidgetItem3 ->addChild(tWidgetItem3_2 );
    tWidgetItem3 ->addChild(tWidgetItem3_3 );
    tWidgetItem3 ->addChild(tWidgetItem3_4 );
    tWidgetItem3 ->addChild(tWidgetItem3_5 );
    tWidgetItem3 ->addChild(tWidgetItem3_6 );
    //第四列
    QTreeWidgetItem *tWidgetItem4  = new QTreeWidgetItem(treeWidget,
                                     QStringList(QString("其他")));
    QTreeWidgetItem *tWidgetItem4_1  = new QTreeWidgetItem(tWidgetItem4,
                                     QStringList(QString("气楼")));
    QTreeWidgetItem *tWidgetItem4_2  = new QTreeWidgetItem(tWidgetItem4,
                                     QStringList(QString("门框")));
    QTreeWidgetItem *tWidgetItem4_3  = new QTreeWidgetItem(tWidgetItem4,
                                     QStringList(QString("窗框")));
     tWidgetItem4 ->addChild(tWidgetItem4_1 ); //添加子节点
     tWidgetItem4 ->addChild(tWidgetItem4_2 );
     tWidgetItem4 ->addChild(tWidgetItem4_3 );
    //第五行
     QTreeWidgetItem *tWidgetItem5  = new QTreeWidgetItem(treeWidget,
                                      QStringList(QString("自定义")));
   //布局
    hLayout = new QHBoxLayout();
    hLayout->addWidget(treeWidget);
     setLayout(hLayout);
}
Widget::~Widget()
{
    delete ui;
}
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    //w.setMaximumSize(200,400);
   // w.setMinimumSize(200,400);
    return a.exec();
}


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值