Qt:QTreeWidge添加节点

封装了两个QTreeWidget添加节点的功能函数,里面包含了节点的常用属性,如setData,type,setToolTip,setExpanded,setFlags等,比较通过特此记录。

一,给treeWidget添加根节点

/**
 * @brief MainWindow::AddTreeRoot 给treeWidget添加根节点
 * @param itemName 节点名
 * @param data 节点携带数据内容
 * @param treeWidget 指针
 * @param ItemType 用户自己指定节点类型
 * @return 返回添加的新根节点指针
 */
QTreeWidgetItem* MainWindow::AddTreeRoot(QString itemName,QString data, QTreeWidget* treeWidget,int ItemType)
{
    if(!treeWidget) return nullptr;
    //有同级同名节点就返回该节点
    for (int i=0;i<treeWidget->topLevelItemCount();i++)
    {
        QTreeWidgetItem *item=treeWidget->topLevelItem(i);
        if(item->text(0)==itemName) return item;
    }
    //没有就创建
    QTreeWidgetItem*  item=new QTreeWidgetItem(treeWidget,ItemType);
    item->setText(0,itemName);
    // item->setTextColor(0, QColor(85,0,127));//设置字体颜色
    item->setFlags(Qt::ItemIsSelectable  | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate);
    item->setData(0,Qt::UserRole,data);
    //item->setCheckState(0,Qt::Unchecked);
    item->setToolTip(0,data);
    item->setExpanded( true);
    treeWidget->addTopLevelItem(item);//添加顶层节点

    return item;
}

二,给一个父节点QTreeWidgetItem添加子节点

/**
 * @brief MainWindow::addChildItem 给一个父节点QTreeWidgetItem添加子节点
 * @param parentItem 父节点
 * @param itemName 子节点名
 * @param data 子节点携带数据值
 * @param ItemType  子节点类型
 * @return 返回添加的新节点指针
 */
QTreeWidgetItem* MainWindow::addChildItem(QTreeWidgetItem* parentItem,QString itemName,QString data,int ItemType)
{
    if(!parentItem)return nullptr ;
    
    //有就返回
    for (int i=0;i<parentItem->childCount();i++)
    {
        QTreeWidgetItem *item=parentItem->child(i);
        if(item->text(0)==itemName)
        {
          
            return item;
        }
    }
    //没有就创建
    QTreeWidgetItem * childItem=new QTreeWidgetItem(ItemType);
    childItem->setText(0,itemName);
    childItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate);

    childItem->setData(0,Qt::UserRole,data);
    childItem->setToolTip(0,data);
    childItem->setExpanded( true);//默认节点展开
    parentItem->addChild(childItem);
    
   
    return childItem;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值