QTreeWidgetItem添加自定义数据

QTreeWidgetItem添加自定义数据

本文简要介绍一个知识点,如题所示,就是如何给QTreeWidgetItem添加自定义数据。两种方法:

方法一

数据可以是任意类型(Variant类型),如果不是基本数据类型的数据,则需要定义一个结构体表示数据类型。这里这样定义:

struct User:public QObjectUserData
{QString imgpath;int itemtype;
};
Q_DECLARE_METATYPE(User)QTreeWidget *tree = new QTreeWidget;
tree->setColumnCount(1);
tree->setHeaderLabel("标题");QTreeWidgetItem *item = new QTreeWidgetItem(0);
item->setText(0,"hello world!");
User mydata;
mydata.imgpath = ":/new/picture/images/pc.png";
mydata.itemtype = 1;//写入数据
item->setData(0,Qt::UserRole+1,QVariant::fromValue(mydata));//读取数据
User data = item->data(0,Qt::UserRole+1).value<User>();
qDebug() << data.imgpath << data.itemtype;

方法二

  1. 继承QTreeWidgetItem,写一个类把信息(自定义数据)存放在里面,假设该类为MyQTreeItem。
    创建一个该类的对象:myQTreeItem和new 一个QTreeWidgetItem对象sysQTreeItem,然后执行tree->setItemWidget(sysQTreeItem ,0,(QWidget*)myQTreeItem); 0表示第1栏。

  2. 当树的节点被点击后,获取树的当前QTreeWidgetItem(假设这里是m_pCurrentItem),然后
    MyQTreeItem* myItem = (MyQTreeItem*)tree->itemWidget(m_pCurrentItem,0);获取到myItem后即可读取数据了。
    qDebug() << myItem->m_sImgPath << myItem->m_iItemType;

class MyQTreeItem:public QTreeWidgetItem
{Q_OBJECTpublic:MyQTreeItem(QWidget *parent = 0);public:QString m_sImgPath;int m_iItemType;
}//前期关联数据
MyQTreeItem* myQTreeItem;
myQTreeItem->m_sImgPath = ":/new/picture/images/pc.png";
myQTreeItem->m_iItemType = 1;QTreeWidgetItem* sysQTreeItem = new QTreeWidgetItem(0);QTreeWidget* tree = new QTreeWidget();
tree->setItemWidget(sysQTreeItem ,0,(QWidget*)myQTreeItem);//后期读取数据
MyQTreeItem* myItem = (MyQTreeItem*)tree->itemWidget(m_pCurrentItem,0);
qDebug() << myItem->m_sImgPath << myItem->m_iItemType;

一个开卷有益的公众号:IT平头哥
作者公众号:IT平头哥。分享工作中遇到的问题,开卷有益,欢迎来撩~

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

python中的get()和item()函数

1.get() 当我们获取字典里的值的时候&#xff0c;一个是通过键值对&#xff0c;即dict[key],另一个就是dict.get()方法。 例如&#xff1a; >>> dict {a:AA, b:BB, c:CC} >>> dict[a] AA >>> dict.get(a) AA get()方法语法&#xff1a; dict.g…

Pytorch/Python中item()的用法

前言 在使用Pytorch训练模型时&#xff0c;用到python中的item()函数&#xff0c;如&#xff1a; train_loss loss.item()现对item()函数用法做出总结。item()函数的作用是从包含单个元素的张量中取出该元素值&#xff0c;并保持该元素的类型不变。,即&#xff1a;该元素为整…

昇腾Ascend+C编程入门教程(纯干货)

2023年5月6日&#xff0c;在昇腾AI开发者峰会上&#xff0c;华为正式发布了面向算子开发场景的昇腾Ascend C编程语言。Ascend C原生支持C/C编程规范&#xff0c;通过多层接口抽象、并行编程范式、孪生调试等技术&#xff0c;极大提高了算子的开发效率&#xff0c;帮助AI开发者低…

微信拍卖_简析微信古玩艺术品拍卖平台的崛起

伴随着4G的到来、移动带宽的提升与移动终端的智能化&#xff0c;围绕在手机终端的应用大行其道&#xff0c;就连古玩艺术品也置身于其中。。。。 微信拍卖的兴起 2013年&#xff0c; 国内艺术品网络拍卖可谓风生水起&#xff0c;不仅艺术圈内各机构纷纷试行网络拍卖&#xff0c…

弘辽科技:淘宝店铺装修多少钱一个月?总共要多少钱?

店铺装修是非常重要的一个环节&#xff0c;如果只是抱着试一试的心态&#xff0c;那就可以不必装修店铺&#xff0c;如果想要长期开下去&#xff0c;还是需要做店铺装修的。那么&#xff0c;店铺装修一般是需要多少钱一个月呢? 一、多少钱一个月? 首先&#xff0c;淘宝店铺全…

帝国CMS源码《珠宝网》企业官网大气绿色珠宝玉器奢侈品古玩类展示型商城源码 带手机版

本套源码带非常完美的筛选功能&#xff0c;非常适合做奢侈品&#xff0c;收藏品&#xff0c;古玩等方面的网站。 源码开源&#xff0c;可以二次开发&#xff01; 本模板为展示型商城&#xff0c;适用于企业官网等。 独家升级为帝国CMS7.5版核心

弘辽科技:淘宝店铺搜不到了还能再开吗?为什么搜索不到?

我们在淘宝开店的目的就是为了将产品卖出去赚钱&#xff0c;但是&#xff0c;在开店的过程中&#xff0c;往往会遇到各种各样的问题&#xff0c;如果店铺都搜索不到了&#xff0c;说明开店不是很成功&#xff0c;那么&#xff0c;是否还能再开呢&#xff1f; 一、店铺搜不到了还…

<C++> STL_deque

<c> STL_deque 1.deque的使用 deque(双端队列)&#xff1a;是一种双开口的"连续"空间的数据结构&#xff0c;双开口的含义是&#xff1a;可以在头尾两端进行插入和 删除操作&#xff0c;且时间复杂度为O(1)&#xff0c;与vector比较&#xff0c;头插效率高&a…

基于SSM+Bootstrap+MySQL+JSP的艺术品古玩交易销售系统

项目运行截图 销售首页 热销推荐 古玩详情 用户注册 用户登录 订单订单 商品管理 分类管理 条幅推荐 修改密码 管理员登录 购物车 收货订单 我的订单 个人中心 技术描述 开发工具&#xff1a; Idea/Eclipse 数据库&#xff1a; mysql Jar包仓库&#xff1a; Maven 前段框架&am…

【开题报告】springboot成都市古玩线上服务平台1x2ji计算机毕业设计

本项目包含程序源码数据库LW调试部署环境&#xff0c;文末可获取一份本项目的java源码和数据库参考。 开题报告 研究背景&#xff1a; 随着互联网的快速发展和普及&#xff0c;线上服务平台在各个领域得到了广泛应用。古玩行业作为一种传统文化产业&#xff0c;也需要适应时代…

JVM第三篇 运行时数据区-虚拟机栈和PC程序计数器

目录 1. JAVA中的线程 2. 栈区 2.1 栈帧 2.2 栈可能出现的异常 2.3 设置栈大小 3.程序计数器&#xff08;PC&#xff09; 4. PC和栈发挥的作用 5. 关于栈的常见面试题 虚拟机包含三大部分&#xff0c;类加载子系统&#xff0c;运行时数据区&#xff0c;执行引擎。运行时…

智慧监狱整体解决方案PPT

导读&#xff1a;原文《智慧监狱整体解决方案PPT》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 喜欢文章&#xff0c;您可以点赞评论转发本文&#xff0c;了解更多…

Linux设备驱动之多个同类设备共用一套驱动

1. 应用场景 比如我们的设备上有很多一样的usb接口&#xff0c;这些usb接口都需要有驱动才能工作&#xff0c;那么是每个usb都一套单独的驱动程序么&#xff1f;显然不是的&#xff0c;这些usb接口属于同一类设备&#xff0c;用户对他们的操作方法完全一致&#xff0c;只不过不…

ScheduleJS Crack,新的“信息列”水平滚动功能

ScheduleJS Crack,新的“信息列”水平滚动功能 增加了对Angular 16的支持 新的“信息列”水平滚动功能。 新的“信息列”固定功能。 添加了输入属性以处理组件模板中的偶数和奇数ScheduleRowPlainBackgroundColor以及CSS变量。 改进了“信息列”和角度甘特组件的类型。 Schedul…

Unity3D开发之发布webplayer设置全屏

项目打包出来后会出现一个html文件&#xff0c;使用notepad打开&#xff0c;删除部分代码 并增加一些代码可设置全屏。 <style type"text/css">#unityPlayer {float:left;top: 0px; height: 100%; width: 100%;position: relative;}html,body{overflow-y:hidde…

web player php,unity web player是什么软件

unity web player是一款浏览器运行Unity3D游戏引擎发布的游戏的插件&#xff0c;一般是用户在玩游戏的时候系统自动安装的&#xff1b;通过unity web player插件可以发布web平台的游戏。 本文操作环境&#xff1a;Windows7系统&#xff0c;Dell G3电脑。 推荐&#xff1a;《编程…

软考高级系统架构设计师真题练习(一)计算机组成结构

【原文链接】软考高级系统架构设计师真题练习&#xff08;一&#xff09;计算机组成结构 真题练习 1 答案&#xff1a;B 真题练习 2 答案&#xff1a;C 真题练习 3 答案&#xff1a;A 真题练习 4 答案&#xff1a;A、D 真题练习 5 答案&#xff1a;D 真题练习 …

C语言(第三十天)

1. 什么是bug bug本意是昆虫”或“虫子”&#xff0c;现在一般是指在电脑系统或程序中&#xff0c;隐藏着的一些未被发现的缺陷或问 题&#xff0c;简称程序漏洞。 “Bug” 的创始人格蕾丝赫柏&#xff08;Grace Murray Hopper&#xff09;&#xff0c;她是一位为美国海军工作的…

QQ互联申请及配置

QQ互联申请及配置 今天要说的只是针对QQ互联的操作&#xff0c;其他的互联请参考相关网站。 第一步&#xff1a;需要申请API接口的两码 自行登录QQ互联https://connect.qq.com/index.html&#xff0c;然后按照要求申请就OK啦。 过几天你会收到一封审核通过的邮件&#xff1a; …

C、C++、VC、MFC网页自动注册、登陆、发帖、留言 QQ注册、QQ申请器源码、源代码

查看文章 【转】C、C、VC、MFC网页自动注册、登陆、发帖、留言 QQ注册、QQ申请器源码、源代码 2012-01-11 10:58 转载自 qq316293804 最终编辑 qq316293804 参考资料&#xff1a; 自动登录yahoo邮箱http://blog.csdn.net/suisuibianbian/archive/2005/12/12/550260.aspx VC采集…