查看完整版本: [-- QTreeWidget的bug?  如何清空QTreeWidget? --]

QTCN开发网 -> Qt基础编程 -> QTreeWidget的bug?  如何清空QTreeWidget? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

yhf365 2010-02-04 00:27

QTreeWidget的bug?  如何清空QTreeWidget?

调用QTreeWidget的clear()时总是报错,提示run time error
ASSERT failure in QList<T>::at: "index out of range", file e:\Qt\2009.05\qt\include/QtCore/../../src/corelib/tools/qlist.h, line 439

在没有点QTreeWidget里面的QTreeWidgetItem时没有问题,
如果点了,就无法调用clear()去清除QTreeWidget的所有内容了。
折腾了半个晚上了,还是没有解决,忘大侠指教!

steinlee 2010-02-04 00:39
post your backtrace info here.

yhf365 2010-02-04 00:51
我在Win下编译的,只提示RunTime Error!
还有
ASSERT failure in QList<T>::at: "index out of range", file e:\Qt\2009.05\qt\include/QtCore/../../src/corelib/tools/qlist.h, line 439
我试过treeWidget->takeTopLevelItem的方法,一个个删也不行,
只想将QTreeWidget清空,可就是找不到好方法

yhf365 2010-02-05 11:40
自己顶一下

donixli1314 2010-02-05 12:03
既然没点item时调用clear()没问题
那你在调clear()之前调下clearSelection ()应该可以的
你试试

xinqingfly 2010-02-05 13:33
是调用clear前就出错了吧,看看是不是前面是不是访问元素越界了

yhf365 2010-02-06 21:07
引用第4楼donixli1314于2010-02-05 12:03发表的  :
既然没点item时调用clear()没问题
那你在调clear()之前调下clearSelection ()应该可以的
你试试

谢谢!我试过了,ui.treeWidget->clearSelection()时就出现了一模一样的问题

yhf365 2010-02-06 21:08
引用第5楼xinqingfly于2010-02-05 13:33发表的  :
是调用clear前就出错了吧,看看是不是前面是不是访问元素越界了

没有啊,我用单步查过了,只在clear时出错

titicacafz 2010-03-24 16:24
兄弟我也遇到同样的问题了,我得Qt版本是4.5.2, 请问你后来解决了吗?

yangfanxing 2010-03-24 16:39
bug吗?没有理由。。。
其它地方有没对index操作了???

benbenmajia 2010-03-24 16:47
提示是超出边界啊,重新写一遍试试看

米尔利安 2011-07-29 11:17
表示遇到同样问题了……

gerryleeke 2012-04-26 14:42
表示也遇到同样问题。。。
就是选中i了tem情况下调用clear()方法的话,程序会直接跳出。在之前加上clearSelection()还是一样出错。。。

xjruan 2012-04-26 17:21
试下这个行不行
while(tree->    topLevelItemCount ())
{
    QTreeWidgetItem* item = tree->takeTopLevelItem(0);
    delete item;
}

gerryleeke 2012-04-26 17:56
恩恩!
楼上的方法是可以的!
谢谢

oxpk110 2021-03-25 09:11
菜鸡找到组织了

元始天尊驾到 2022-08-08 22:25
可是,这到底是什么原因呢?


查看完整版本: [-- QTreeWidget的bug?  如何清空QTreeWidget? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled