zoukankan      html  css  js  c++  java
  • qt5--树形控件QTreeWidget

     需要       #include <QTreeWidget>               #include <QTreeWidgetItem>   

    #include "win.h"
    #include <QDebug>
    #include <QPushButton>
    
    Win::Win(QWidget *parent)
        : QWidget(parent)
    {
        this->resize(500,400);
    
        QPushButton* btn=new QPushButton("按钮",this);
        btn->move(400,350);
        connect(btn,&QPushButton::clicked,this,&Win::A);
    
        tw=new QTreeWidget(this);  // 创建一个树形控件
        tw->move(10,10);
        tw->setColumnCount(2); //设置列数
        tw->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");  //设置头部标签
    
        QTreeWidgetItem* twi=new QTreeWidgetItem(QStringList()<<"力量");  //创建项目
        tw->addTopLevelItem(twi);  //添加一个顶层项目
        QTreeWidgetItem* twi1=new QTreeWidgetItem(QStringList()<<"敏捷");
        tw->addTopLevelItem(twi1);
        QTreeWidgetItem* twi2=new QTreeWidgetItem(QStringList()<<"智力");
        tw->insertTopLevelItem(0,twi2);  //插入顶层项目
        //参数1 索引号
        twi2->setCheckState(0,Qt::PartiallyChecked);  // 给项目设置复选框
        //参数1 复选框的位置 列序号
        //Qt::Unchecked   没选中
        //Qt::Checked    选中
        //Qt::PartiallyChecked   部分选中
    
        QTreeWidgetItem* li1=new QTreeWidgetItem(QStringList()<<"钢珠"<<"前排坦克,能吸引伤害");
        QTreeWidgetItem* li3=new QTreeWidgetItem(QStringList()<<"铁柱"<<"后排坦克,能吸引伤害");
        twi->addChild(li1)   ;//给项目添加子项
        twi->addChild(li3);
    
        connect(tw,&QTreeWidget::itemClicked,this,&Win::B);  //单击项目触发的信号
        //这个信号会自动传递两个参数:参数1就是被单击的项目指针;参数2就是单击的列序号
    
        connect(tw,&QTreeWidget::itemDoubleClicked,this,&Win::C);  //双击项目触发的信号
        //这个信号会自动传递两个参数:参数1就是被单击的项目指针;参数2就是单击的列序号
    
        connect(tw,&QTreeWidget::currentItemChanged,this,&Win::D); //当前项目变化时触发信号
        //这个信号会自动传递两个参数:参数1就是当前项目指针;参数2就是前一项目指针
    
        tw->expandAll();//让所有的项都是以打开状态显示的
        //注意必须要在所有项都已经实例化好之后再调用该方法,如果一开始就调用则会没有效果
    
    
    }
    void Win::D(QTreeWidgetItem *current, QTreeWidgetItem *previous){
        qDebug()<<"当前项目变化了:"<<current<<previous;
    }
    void Win::C(QTreeWidgetItem *item, int column){
    qDebug()<<"双击了项目:"<<item<<column;
    }
    void Win::B(QTreeWidgetItem *item, int column){
    qDebug()<<"单击了项目:"<<item<<column;
    QTreeWidgetItem* pi=item->parent(); //返回指定项目的父项目指针
    //顶层项目的指针是0x0--NULL
    
    //int col = pi->indexOfChild(item); //item在父项中的行号(从0开始)
    //【注意:item不能是顶层项目--否则崩溃】
    
    QTreeWidgetItem* curItem=tw->currentItem();  //获取当前项目指针
    QString str=curItem->text(1);  //返回项目指定列的文本--参数项目的列序号
    
    
    
    qDebug()<<str;
    }
    
    Win::~Win()
    {
    
    }
    
    
    void Win::A(){
    
    
    
    }

    实例下载地址:https://share.weiyun.com/5BhTQXr    

  • 相关阅读:
    struts2学习笔记(二)
    struts2学习问题(一)
    struts2学习(一)
    给 ecplise 配置struts2配置环境
    Servlet的生命周期
    奇数位丢弃
    快速排序和归并排序(C语言)
    学习正则表达式及c#应用
    C#string与stringBuilder的区别
    c#之字符串函数
  • 原文地址:https://www.cnblogs.com/liming19680104/p/11496026.html
Copyright © 2011-2022 走看看