黑帽子男孩 2022-10-14 16:28 采纳率: 0%
浏览 22

Qt相关,processEvents删除QVector

  

执行了多次QCoreApplication::processEvents(QEventLoop::AllEvents, 100);语句后,我的一个类成员变量QVector<QRect> _listRect的size从1变成0了,后面访问 _listRect的时候程序崩了,报错ASSERT failure in QVector<T>::at: "index out of range", file C:\Qt\Qt5.12.1\5.12.1\msvc2017_64\include\QtCore\qvector.h, line 429。怎么解决这个问题?

 

 

2022/11/12

问题已解决。运用搜寻关键字clear的方法,我发现在一个槽函数里对容器QRect进行了清空操作,这个槽函数在不是期望的时候响应了,修改槽函数响应逻辑后,容器QRect可以正常访问了,程序不再崩了。

总结:1.读程序不仔细,没有完全搞清楚整个程序的运行逻辑。2.积极提问,通过网络社区、社交软件等渠道与同专业人员交流。3.留存开发记录或学习经历,通过纸质形式或者电子形式写下遇到的问题或心得体会,供自己回忆、他人参考。

  • 写回答

1条回答 默认 最新

  • 关注

    这不就是数组越界了嘛。自己检查下访问这个Qvector的时候是否有超出数组范围

    评论

报告相同问题?

问题事件

  • 修改了问题 11月12日
  • 创建了问题 10月14日