c++ - 如何将字符串属性设置为 QTreeWidgetItem?
问题描述
我有一个由 id 唯一标识的应用程序特定项目的列表。他们的名字显示在一个QTreeWidget
(一个项目对应一个QTreeWidgetItem
)。我想以某种方式将相应的 id 附加到这些QTreeWidgetItems
上,以便在选择更改后我可以访问相应项目的 id 并进行一些处理。
QTreeWidgetItem
不继承,QObject
所以我不能使用它的setProperty
功能。我怎么能这样做?
解决方案
只需为属性创建一些用户定义的角色...
typedef enum {
id_1_role = Qt::UserRole,
id_2_role,
id_N_role,
} property_id_role;
然后,您可以使用常规方法获取/设置与 a 关联的数据QTreeWidgetItem
。
QTreeWidgetItem *item = ...
/*
* Set the property value.
*/
item->setData(column, property_id_role::id_2_role, id_2_value);
/*
* Get the property value.
*/
auto id_2_value = item->data(column, property_id_role::id_2_role).value<id_2_type>();
推荐阅读
- python - 打印字符串,而不是字符数
- javascript - Kendo UI & Javascript - 添加新记录时未获取数据
- ios - 在选项卡式视图控制器的更多选项卡中访问视图控制器列表
- haskell - 如何让 Haddock 使用我的后缀处理程序生成文档?
- android - WebView 侧边栏不展开
- python - Pyspark 以自动方式处理结构类型数组
- r - 在filled.contour3 图的不同位置放置点
- ios - 响应蓝牙耳机播放/暂停事件
- ffmpeg - 关于fmp4文件第一个mdat框的问题
- apache-spark - 使用 spark 从 csv 文件中删除所有特殊字符