• 13558阅读
  • 5回复

[提问]求 QTreeWidget 调用 setUserData 正确用法 [复制链接]

上一主题 下一主题
离线rcsk
 
只看楼主 倒序阅读 楼主  发表于: 2011-10-09
我需要调用setUserData(uint ,QObjectUserData*);保存一些数据


  1. char* chBuf = new char[100];
  2.     memcpy(chBuf,"ABC",4);
  3.     treeWidget->setUserData( i, (QObjectUserData*)chBuf);


无论保存的数据的指针删不删都会在程序退出的时候就要报错! 求解。谢谢。
离线roywillow

只看该作者 1楼 发表于: 2011-10-09
说实话这种用法感觉好奇怪
如果你想保存个字符串的话直接用QString就好了啊
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线rcsk
只看该作者 2楼 发表于: 2011-10-09
回 1楼(roywillow) 的帖子
  不是 我不是想要保存字符串 我是要保存一个结构。 那只是一个参考。。
离线dbzhang800

只看该作者 3楼 发表于: 2011-10-09
Re:回 1楼(roywillow) 的帖子
引用第2楼rcsk于2011-10-09 11:32发表的 回 1楼(roywillow) 的帖子 :
[表情]  不是 我不是想要保存字符串 我是要保存一个结构。 那只是一个参考。。

如果是自定义类型,先确保你对这个已经非常清楚:

http://doc.qt.nokia.com/4.8-snapshot/custom-types.html
离线rcsk
只看该作者 4楼 发表于: 2011-10-10
谢谢,解决了。 加了那些东西就没有报错了。
离线houwenbin

只看该作者 5楼 发表于: 2015-05-05
其实最简单的就是在声明时继承自QObjectUserData
//为了使用setUserData需继承
struct EventDBInfo : QObjectUserData
{
    int id;//索引
    char alarm_time[20];//报警时间
    int alarm_type;//报警类型
    int alarm_level;//报警等级
    char chan_zone[256];//通道、点位
    int deal_state;//处理状态
    char deal_view[512];//处理意见
};
这样使用QTableWidget::setUserData就可实现类似MFC的setItemData了。
快速回复
限100 字节
 
上一个 下一个