Qt|QTreewidget类下函数qt助手详解说明示例(上)

该系列持续更新,喜欢请一键三连,感谢各位大佬。
QT5.14.2 参考官方QT助手

文章目录

  • QTreeWidget Class
  • properties
  • Public Functions
    • 默认构造函数
    • 默认析构函数
    • 添加根节点void addTopLevelItem(QTreeWidgetItem *item)
    • 添加多个根节点void addTopLevelItems(const QList<QTreeWidgetItem *> &items)
    • 关闭编辑void closePersistentEditor(QTreeWidgetItem *item, int column = 0)
    • 获取列数int columnCount() const
    • 返回当前选中列int currentColumn() const
    • 返回当前选中QTreeWidgetItem *currentItem() const
    • 没用void editItem(QTreeWidgetItem *item, int column = 0)
    • 查找满足条件的item返回QList<QTreeWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const
    • 返回表头QTreeWidgetItem *headerItem() const
    • 返回index索引根据item int indexOfTopLevelItem(QTreeWidgetItem *item) const
    • 在指定索引位置插入新的top节点void insertTopLevelItem(int index, QTreeWidgetItem *item)
    • 插入多个top节点void insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)
    • 递归访问所有根节点 返回一个模拟节点作为所有根节点的父节点QTreeWidgetItem *invisibleRootItem() const
    • 节点是否为可编辑状态bool isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const
    • 不分层级获取上层相邻节点QTreeWidgetItem *itemAbove(const QTreeWidgetItem *item) const
    • 根据坐标返回节点QTreeWidgetItem *itemAt(const QPoint &p) const
    • 同上直接输入坐标QTreeWidgetItem *itemAt(int x, int y) const
    • 返回显示出的下层节点QTreeWidgetItem *itemBelow(const QTreeWidgetItem *item) const

在这里插入图片描述

QTreeWidget Class

The QTreeWidget class provides a tree view that uses a predefined tree model. More…
QTreeWidget类提供了一个使用预定义树模型的树视图。

Header:#include
qmake:QT += widgets
Inherits:QTreeView

List of all members, including inherited members
所有成员的列表,包括继承的成员
Obsolete members
过时的成员

properties

columnCount : int
topLevelItemCount : const int

Public Functions

默认构造函数

QTreeWidget::QTreeWidget(QWidget *parent = nullptr)
在这里插入图片描述
示例:

// 创建 QTreeWidget 对象
QTreeWidget *tree = new QTreeWidget;
tree->setColumnCount(3);                            // 设置列数为 3
tree->setHeaderLabels({ "Name", "Value", "Data" });   // 设置列标签
tree->header()->setSectionResizeMode(QHeaderView::ResizeToContents); // 自适应列宽

默认析构函数

QTreeWidget::~QTreeWidget()
在这里插入图片描述

添加根节点void addTopLevelItem(QTreeWidgetItem *item)

在这里插入图片描述
示例:

// 创建根节点
QTreeWidgetItem *root = new QTreeWidgetItem(tree);
root->setText(0, "Root");
root->setText(1, "0");
root->setData(2, Qt::UserRole, "root data");
tree->addTopLevelItem(root);

在这里插入图片描述

添加多个根节点void addTopLevelItems(const QList<QTreeWidgetItem *> &items)

在这里插入图片描述
示例:

// 创建根节点
QTreeWidgetItem *root = new QTreeWidgetItem(tree);
root->setText(0, "Root");
root->setText(1, "0");
root->setData(2, Qt::UserRole, "root data");
//tree->addTopLevelItem(root);
QList<QTreeWidgetItem* > all_root_list;
all_root_list.push_back(root);
QTreeWidgetItem *root1 = new QTreeWidgetItem(tree);
root1->setText(0, "Root2");
all_root_list.push_back(root1);
tree->addTopLevelItems(all_root_list);

在这里插入图片描述

关闭编辑void closePersistentEditor(QTreeWidgetItem *item, int column = 0)

在这里插入图片描述
关闭item编辑器,如果是关闭的则此函数无效。
先打开看效果是这样的:

tree->openPersistentEditor(root);

在这里插入图片描述
然后再调用closePersistentEditor

tree->openPersistentEditor(root);
tree->closePersistentEditor(root);

在这里插入图片描述

获取列数int columnCount() const

在这里插入图片描述

qDebug() << "tree->columnCount:"<<tree->columnCount();

在这里插入图片描述

返回当前选中列int currentColumn() const

在这里插入图片描述
默认-1,点击选中哪列返回列号,索引从0开始。

qDebug() << "tree->currentColumn:" << tree->currentColumn();
connect(tree, &QTreeWidget::itemClicked, this, [=] {
	qDebug() << "tree->currentColumn:" << tree->currentColumn();
});

在这里插入图片描述

返回当前选中QTreeWidgetItem *currentItem() const

在这里插入图片描述
默认是NULL

QTreeWidgetItem* selectItem = tree->currentItem();

在这里插入图片描述

没用void editItem(QTreeWidgetItem *item, int column = 0)

在这里插入图片描述

查找满足条件的item返回QList<QTreeWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const

在这里插入图片描述
查找包含字符串ro的item,以字符串不分大小写匹配(第二个参数是匹配规则为枚举类型详见qt官方文档说明)

QList<QTreeWidgetItem*> find_items = tree->findItems("ro",Qt::MatchContains);
for (auto item:find_items)
{
	qDebug() << item->text(0);
}

在这里插入图片描述

返回表头QTreeWidgetItem *headerItem() const

在这里插入图片描述

QTreeWidgetItem* hearderItem = tree->headerItem();
qDebug() << hearderItem->text(0);
qDebug() << hearderItem->text(1);
qDebug() << hearderItem->text(2);
qDebug() << hearderItem->text(3);

在这里插入图片描述

返回index索引根据item int indexOfTopLevelItem(QTreeWidgetItem *item) const

在这里插入图片描述
只能获取到top节点索引

qDebug() << tree->indexOfTopLevelItem(nullptr);
qDebug() << tree->indexOfTopLevelItem(root);
qDebug() << tree->indexOfTopLevelItem(child2);
qDebug() << tree->indexOfTopLevelItem(root1);

在这里插入图片描述

在指定索引位置插入新的top节点void insertTopLevelItem(int index, QTreeWidgetItem *item)

在这里插入图片描述
插入qstring超过列数则不显示

QStringList insertitem;
insertitem << "insertroot" << "i2" << "2133" << "122344";
tree->insertTopLevelItem(1, new QTreeWidgetItem(insertitem));

在这里插入图片描述

插入多个top节点void insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)

在这里插入图片描述

QStringList insertitem;
insertitem << "insertroot" << "i2" << "2133";
QList<QTreeWidgetItem*> qtree_widget_list;
qtree_widget_list.push_back(new QTreeWidgetItem(insertitem));
insertitem.clear();
insertitem << "insertroot2";
qtree_widget_list.push_back(new QTreeWidgetItem(insertitem));
tree->insertTopLevelItems(0, qtree_widget_list);

在这里插入图片描述

递归访问所有根节点 返回一个模拟节点作为所有根节点的父节点QTreeWidgetItem *invisibleRootItem() const

在这里插入图片描述
以该形式遍历所有根节点:

QTreeWidgetItem* one = tree->invisibleRootItem();
int nums = one->childCount();
for (int i=0;i<nums;++i)
{
	qDebug() << one->child(i)->text(0);
}

在这里插入图片描述

节点是否为可编辑状态bool isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const

在这里插入图片描述
获取item是否为可编辑状态,qt5.10之后版本才有这个函数

qDebug()<< tree->isPersistentEditorOpen(root);
tree->openPersistentEditor(root);
qDebug() << tree->isPersistentEditorOpen(root);
tree->closePersistentEditor(root);
qDebug() << tree->isPersistentEditorOpen(root);

在这里插入图片描述

不分层级获取上层相邻节点QTreeWidgetItem *itemAbove(const QTreeWidgetItem *item) const

在这里插入图片描述
只能获取到展开节点,所以开始之前先调用expandAll(),否则获取到的为显示的相邻节点。
若没有显示出来的上层节点则返回空指针。

tree->expandAll();
QTreeWidgetItem* t1 = tree->itemAbove(root);
if (t1)
	qDebug() << t1->text(0);
t1 = tree->itemAbove(child1);
if (t1)
	qDebug() << t1->text(0);
t1 = tree->itemAbove(root1);
if (t1)
	qDebug() << t1->text(0);

在这里插入图片描述

根据坐标返回节点QTreeWidgetItem *itemAt(const QPoint &p) const

在这里插入图片描述
树形控件内部坐标,左上角为0,0点,如果对应坐标没有节点返回NULL

QPoint* p1 = new QPoint(0, 0);
QTreeWidgetItem* t1 = tree->itemAt(*p1);
if (t1)
	qDebug() << t1->text(0);
QPoint* p2 = new QPoint(0, 40);
t1 = tree->itemAt(*p2);
if (t1)
	qDebug() << t1->text(0);

在这里插入图片描述

同上直接输入坐标QTreeWidgetItem *itemAt(int x, int y) const

在这里插入图片描述
同上:
在这里插入图片描述

返回显示出的下层节点QTreeWidgetItem *itemBelow(const QTreeWidgetItem *item) const

在这里插入图片描述
同itemAbove,只是取得下层节点,没有下层则返回空指针
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/416441.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图神经网络实战——图论

图神经网络实战——图论 0. 前言1. 图属性1.1 有向图和无向图1.2 加权图与非加权图1.3 连通图非连通图1.4 其它图类型 2. 图概念2.1 基本对象2.2 图的度量指标2.2 邻接矩阵表示法 3. 图算法3.1 广度优先搜索3.2 深度优先搜索 小结系列链接 0. 前言 图论 (Graph theory) 是数学…

从代码到内容:使用C#和Fizzler探索Instagram的深处

文章摘要&#xff1a; Instagram是一个流行的社交媒体平台&#xff0c;拥有数亿的用户和海量的图片和视频内容。如果您想要从Instagram上获取一些有用的信息或数据&#xff0c;您可能需要使用爬虫技术来自动化地抓取和分析网页内容。本文将介绍如何使用C#和Fizzler这两个强大的…

Facebook元宇宙大观:数字化社交的未来愿景

近年来&#xff0c;元宇宙&#xff08;Metaverse&#xff09;概念备受关注&#xff0c;被认为是数字化社交的未来趋势。作为全球领先的社交媒体平台之一&#xff0c;Facebook正积极探索元宇宙的发展路径&#xff0c;构想着一个数字化社交的未来愿景。在本文中&#xff0c;我们将…

FLStudio20.8编曲制作软件中文版下载及功能全面介绍

一、主要功能 FL Studio 20.8&#xff0c;作为一款深受音乐制作人和作曲家喜爱的软件&#xff0c;具备多种核心功能&#xff0c;满足从创作到完成的整个音乐制作流程。 音频录制与编辑&#xff1a;用户可以轻松录制外部音频&#xff0c;如乐器演奏、人声等&#xff0c;并在软…

PBM学习——从基础到精通!!!

本专栏着重讲解PBM学习所得,学习笔记、心得,并附有视频素材资料,视频详细目录如下: PBM相关参数解释1 PBM相关参数解释2 PBM相关案例实践1 PBM相关案例实践2 PBM相关案例实践2 PBM相关案例实践3 PBM多相流中次相界面设置1 PBM多相流中次相界面设置2 欧拉多相流曳力1 欧拉多…

opengles 绘制图元 ——glDrawArrays() 相关API介绍 (十)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、opengles3.0 绘制图元介绍二、绘图图元 API 介绍1. glDrawArrays()1.1 glDrawArrays()函数原型1.2 GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN 三者的区别1.3 使用GL_TRIANGLES, G…

苹果App Store上架工具介绍

文章目录 摘要引言正文1. Xcode2. [appuploder](https://www.applicationloader.net/)3. [克魔助手](https://keymob.com/) 4.[ipa guard](https://www.ipaguard.com/)总结参考资料 摘要 苹果App Store作为iOS应用程序的主要分发渠道&#xff0c;上架应用程序需要遵守规定和通…

kafka消费者接收不到消息

背景&#xff1a; 对kafka消息进行监听&#xff0c;生产者发了消息&#xff0c;但是消费端没有接到消息&#xff0c;监听代码 消费端&#xff0c;kafka配置 spring.kafka.bootstrap-serverskafka.cestc.dmp:9591 spring.kafka.properties.sasl.jaas.configorg.apache.kafka.…

动态规划之使用最小花费爬楼梯【LeetCode】

动态规划之使用最小花费爬楼梯 LCR 088. 使用最小花费爬楼梯解法1解法2 LCR 088. 使用最小花费爬楼梯 LCR 088. 使用最小花费爬楼梯 解法1 状态表示&#xff08;这是最重要的&#xff09;&#xff1a;dp[i]表示以第i级台阶为楼层顶部&#xff0c;到达第i层台阶的最低花费。 状…

threejs 大场景下,对小模型进行贴图处理

接上篇小模型的删除☞threeJS 大模型中对小模型进行删除-CSDN博客 针对已有模型&#xff0c;根据数据状态进行贴图处理&#xff0c;例如&#xff1a;机房内电脑告警状态、电脑开关机状态下的不同状态贴图等 示例模型还是以丛林小屋为例&#xff1a;针对该模型中的树干进行贴图…

❤ git操作Github、git操作github

❤ 操作github 一、git操作Github 1、设置用户名和邮件地址 git config --global user.name "nexuslin" git config --global user.email "2455067339qq.com"2、生成本地密钥 ssh-keygen -t rsa -C 2455067339qq.com3、接下来就一直回车&#xff0c;然…

html2canvas + JsPDF.js 导出pdf分页时的问题

问题描述 前一段时间 实现了html2canvas jspdf.js 导出pdf的功能 项目当时没有测试做完就先搁置 最近项目要上线发现分页时问题 这篇文章记录一下之前的bug import html2canvas from html2canvas; import JsPDF from jspdf export function savePdf(el, title) {html2canva…

高级语言期末2018级A卷(计算机学院)

1.输出S的值&#xff0c;精度1e-6 #include <stdio.h>int main() {int i1;double flag1.0/(2*i-1)*2*i/(2*i-1);double sum0;while(flag>1e-6) {sumflag;i;flag1.0/(2*i-1)*2*i/(2*i-1);}printf("%lf",sum); } 2.编写函数&#xff0c;对n个字符串按字典顺序…

C++_STL使用手册

STL基础 STL全称为 standard template library&#xff0c;中文可译为标准模板库或者泛型库&#xff0c;其包含有大量的模板类和模板函数&#xff0c;是 C 提供的一个基础模板的集合;STL由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成&#xff0c;其中后面…

【AI绘画·24年1月最新】Stable Diffusion整合包安装!解压即用--秋葉aaaki 大佬的作品,试用

前言 Stable Diffusion 之前费老大的劲部署安装&#xff0c;解决报错。搞完之后&#xff0c;突然发现有个现成集成包可以用&#xff0c;真是效率高到不行&#xff0c;今天搞下来试试 我电脑配置&#xff1a; CPU: 12th Gen Intel Core™ i7-12700F 2.10 GHz 内存32G&#xff0…

DOM 获取父子节点

DOM 是以树状结构排列的&#xff0c;所以父子关系是相对的&#xff0c;当li为我们的目标节点的时候&#xff0c;ul为其父节点&#xff0c;其他li为它的兄弟节点&#xff0c;li里面包含的标签为子节点&#xff0c;以此类推。 那我们如何找父节点&#xff1f; 元素.parentNode&am…

NTT模板

//一个n项和一个m项求卷积 typedef long long LL; const int p 998244353, G 3, Gi 332748118;//这里的Gi是G的除法逆元 const int N 5000007; const double PI acos(-1); int n, m; int res, ans[N]; int len 1;// int L;//二进制的位数 int RR[N]; LL a[N], b[N]; inli…

5G提速工业物联网发展

对于普通消费者来说&#xff0c;5G的概念可能就是更快的网速&#xff0c;5G带来的上网体验提升是最直观的&#xff0c;因为拿手机可以实时观看高清晰度的视频&#xff0c;且无需太久的等待时间。 而更低的时延与更高的可靠性对C端用户带来的体验改善&#xff0c;相对来说就小很…

16. QML中的一些粒子特效

1.说明 在使用unity开发游戏时&#xff0c;都会涉及到一些特效的开发。实际上在QML中也提供了一些可以做特效的控件&#xff0c;称之为粒子系统。本篇博客主要记录一些使用粒子做特效的方式。 特效–火焰效果&#xff1a; 2. 案例汇总 2.1 案例1 效果展示&#xff1a; 粒子…

Nginx网络服务五-----rewrite和反向代理

1.rewrite 1.1rewrite指令 通过正则表达式的匹配来改变URI&#xff0c;可以同时存在一个或多个指令&#xff0c;按照顺序依次对URI进行匹配&#xff0c;rewrite主要是针对用户请求的URL或者是URI做具体处理 官方文档&#xff1a; https://nginx.org/en/docs/http/ngx_http_r…