
Qt之QTreeWidget添加节点获取节点
发布日期:2021-05-14 22:41:10
浏览次数:13
分类:精选文章
本文共 3751 字,大约阅读时间需要 12 分钟。
Qt之QTreeWidget添加节点获取节点
概述:
QTreeWidget 类根据预设的模型提供树形显示控件。
QTreeWidget 使用类似于 QListWidget 类的方式提供一种典型的基于 item 的树形交互方法类,该类基于QT的“模型/视图”结构,提供了默认的模型来支撑 item 的显示,这些 item 类为 QTreeWidgetItem 类。 如果不需要灵活的“模型/视图”框架,可以使用QTreeWidget 来创建有层级关系的树形结构。当把标准 item 模型结合 QTreeView 使用时,可以得到更灵活的使用方法,从而把“数据”和“显示”分离开。代码示例:
.h
#ifndef MYTREEWIDGET_H#define MYTREEWIDGET_H#include#include #include #include namespace Ui { class MyTreeWidget;}class MyTreeWidget : public QWidget{ Q_OBJECTpublic: explicit MyTreeWidget(QWidget *parent = 0); ~MyTreeWidget();private: /** * @brief initTree1 初始化树 */ void initTree1(); void initTree2(); /** * @brief GetNode 获取节点 */ void GetNode();private: Ui::MyTreeWidget *ui; QTreeWidgetItem *item; //根节点(根节点下可以有多个子结点) QTreeWidgetItem *itemD; //子节点(子点下可以有多个孙子结点) QTreeWidgetItem *itemW; //子节点};#endif // MYTREEWIDGET_H
.cpp
#include "MyTreeWidget.h"#include "ui_MyTreeWidget.h"MyTreeWidget::MyTreeWidget(QWidget *parent) : QWidget(parent), ui(new Ui::MyTreeWidget){ ui->setupUi(this); item = new QTreeWidgetItem; item->setText(0,"Qt.Fantast"); ui->treeWidget->addTopLevelItem(item);//添加根节点 initTree1(); initTree2(); GetNode();}MyTreeWidget::~MyTreeWidget(){ delete ui;}void MyTreeWidget::initTree1(){ itemW = new QTreeWidgetItem; itemW->setText(0,"Qt"); item->addChild(itemW);//插入在根节点下面 QString path = QString("D:/QtApp/C++DesignPayyerns/Plant"); QDir dir(path); QStringList list; list << "*.cpp" << "*.h"; QStringList files = dir.entryList(list); for(int i=0;isetText(0,name); itemW->addChild(itemWW);//插入在根节点下面 }}void MyTreeWidget::initTree2(){ itemD = new QTreeWidgetItem; itemD->setText(0,"Ui"); item->addChild(itemD);//插入在根节点下面 QString path = QString("D:/QtApp/C++DesignPayyerns/Command"); QDir dir(path); QStringList list; list << "*.cpp" << "*.h"; QStringList files = dir.entryList(list); for(int i=0;i setText(0,name); itemD->addChild(itemDD);//插入在根节点下面 }}void MyTreeWidget::GetNode(){ int num = ui->treeWidget->topLevelItemCount(); //返回根节点数量 qDebug() << num; int clolum = ui->treeWidget->columnCount(); //返回列数 qDebug() << clolum; for(int i=0;i< num;i++)//遍历获取根节点文字 { QTreeWidgetItem *item = ui->treeWidget->topLevelItem(i);//获取最高节点 qDebug()<< item->text(0); } for(int i=0;i < item->childCount();i++) { QTreeWidgetItem *child = item->child(i);//获取子节点 QString text =child->text(0); qDebug() << text;// 我 敌 此方法相同于下面两个循环 } for(int i = 0;i < itemW->childCount();i++) { QTreeWidgetItem *child = itemW->child(i);//获取子节点 QString text =child->text(0); qDebug() << text; } for(int i = 0;i < itemD->childCount();i++) { QTreeWidgetItem *child = itemD->child(i);//获取子节点 QString text =child->text(0); qDebug() << text; }}// QString currDir = QString("%1/LogFile/").arg(QDir::currentPath());// QDir Dir(currDir); //查看工作路径是否存在// if(!Dir.exists()){ Dir.mkdir(currDir);} //如果文件夹不存在则新创建文件夹// Dir.setFilter(QDir::Files); //设置过滤器只查看文件// QStringList list = Dir.entryList(QDir::Files); //获取所有文件// foreach (QFileInfo file, list) //遍历只加载.txt到文件列表// { // if(file.fileName().split(".").back() == "txt")// { // ui->logName->addItem(file.fileName()/*.split(".").at(0)*/);// }
效果图:
over:
欢迎大家关注作者在文末评论、点赞、转发以及批评指正!
如果大家有更好的方法或有问题可以在文末评论一起讨论! 共同学习! 共同进步!文末一句话:
人,切莫自以为是,地球离开了谁都会转,古往今来,恃才放肆的人都没有好下场。
所以,即便再能干,也一定要保持谦虚谨慎,做好自己的事情,是金子总会发光。发表评论
最新留言
不错!
[***.144.177.141]2025年04月25日 13时27分44秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Thymeleaf sec:authorize 标签不生效
2021-05-14
Iterable与Iterator
2021-05-14
Python机器学习(六十五)Matplotlib 入门
2021-05-14
关于WebView当前地址问题的疑惑
2021-05-14
Python机器学习(九十二)Pandas 统计
2021-05-14
SecSolar:为代码“捉虫”,让你能更专心写代码
2021-05-14
1965 - 2019 年最流行的编程语言变化
2021-05-14
链上钱包的博彩雷区
2021-05-14
GRUB2
2021-05-14
微信JS-SDK DEMO页面和示例代码
2021-05-14
Chrome查找发请求的js之黑箱调试
2021-05-14
CMCC登录参数分析
2021-05-14
GridView的另外一种分页方式,可提高加载速度
2021-05-14
GridView自定义删除操作
2021-05-14
http常见响应状态码
2021-05-14
Nginx Location
2021-05-14
解决github Git clone 慢的问题
2021-05-14
一张图搞定RPC框架核心原理
2021-05-14