QStandardItem的setIcon()的问题

stonezheng 2011-07-19 10:00:11
我使用QStandardItemModel* item_model->findItems(QString)找到相应的QStandardItem,希望改变它的icon,但是却产生了segmentation fault,这是什么原因??请教大家

源码:
if(!item_model->findItems(search).isEmpty() )
{
QStandardItem* on_item = item_model->findItems(to_search).at(0);
on_item->setIcon(*head_icon_back);//head_icon_back是已经初始化的QICON指针

}
...全文
588 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonezheng 2011-07-19
  • 打赏
  • 举报
回复
哦,对了,调试的时候,显示on_item确实是QStandardItem*,但是值只是个地址值
stonezheng 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dxms8 的回复:]

引用 2 楼 stonezheng 的回复:
我试了下on_item->text()也是得到segmentation fault,但是on_item不是null,是item_model->findItems(to_search).at(0);得到的新值

这么看来的话你确实得到了item,但是得到的东西并是不QStandardItem类型的可能性比较大。你可以检查下search内容和ind……
[/Quote]

index 没有错,我用item_model->findItems(search).first();也不行
而且的确找到了,int count = item_model->findItems(search).count();的值是1
请教,怎么检查on_item的类型,我在qt creator下调试,只能看到on_item等于地址值
dxms8 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 stonezheng 的回复:]
我试了下on_item->text()也是得到segmentation fault,但是on_item不是null,是item_model->findItems(to_search).at(0);得到的新值
[/Quote]
这么看来的话你确实得到了item,但是得到的东西并是不QStandardItem类型的可能性比较大。你可以检查下search内容和index
stonezheng 2011-07-19
  • 打赏
  • 举报
回复
我就是调试了很久,也没发现问题所在,才来问的
stonezheng 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dxms8 的回复:]

lz可以先判断下on_item是否为null啊,自己调试下,很快就能找到原因了。
[/Quote]

我试了下on_item->text()也是得到segmentation fault,但是on_item不是null,是item_model->findItems(to_search).at(0);得到的新值
dxms8 2011-07-19
  • 打赏
  • 举报
回复
lz可以先判断下on_item是否为null啊,自己调试下,很快就能找到原因了。
stonezheng 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dxms8 的回复:]

lz可以先判断下on_item是否为null啊,自己调试下,很快就能找到原因了。
[/Quote]

问题找到了,是我另一个线程也在操作这个数据,有冲突了,我加上信号量就没问题了。多谢关心。。

16,235

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧