Qt <T> :: at中的qt ASSERT失败:"索引超出范围"

use*_*985 0 c++ qt runtime-error

我仍然是Qt的新手,我最近一直在做一个大型项目.当我尝试运行该项目时,我收到此错误:

ASSERT failure in QList<T>::at: "index out of range", file c:\qt\qt5.3.0\5.3\msvc2013_64\include\qtcore\qlist.h, line 479
Run Code Online (Sandbox Code Playgroud)

只是想知道是否有人知道这意味着什么或我如何追查问题的根源?

[编辑]我认为添加此代码会导致错误

autAtom *aP = new autAtom(Principal);
    autAtom *aQ = new autAtom(Principal);

    autData *P = new autData (DataAtom, aP);
    autData *Q = new autData (DataAtom, aQ);
    autData *X = new autData (AnyData);

    AUTPostulate *p;
    autStatementList preList;


    {
        preList.clear();
        //autData *d1 = new autData(NotHereData, X);
        autStatement *pre1 = new autStatement(aP, believes, X);
        autStatement *goal = new autStatement(aP, sees, X);
        preList.append(pre1);
        p = new AUTPostulate("BS", BS, goal, preList);
        cout << "" << p->getString().toStdString() << endl;
        AUTPostulates.append(p);

    }
Run Code Online (Sandbox Code Playgroud)

取出后,工具运行正常.

use*_*797 5

我遇到了类似的问题,因为我在填充小部件之前做了一个connecton itemChanged,然后在填充我的插槽代码时调用了.在我放置一个防止在小部件填充期间信号处理的警卫之后,我发现我可以很好地填充小部件,我也可以在之后处理信号.希望这可以帮助.