在MainWindow的头文件中定义
QList<QWidget*> list1;
QList<QWidget*> list2;
之后运行直接就引用内存不能为read了。
是不是应该初始化什么的,对C++不熟。
------最佳解决方案--------------------
QList就假设是一个数组,储存数据用的,里面数据要添加进去,不添加数据list是空的。
------其他解决方案--------------------
list初始化 如果你没往里放数据 是会自动调用Qlist的构造函数的
也就是list1和list2的里面都为空
你肯定取不到数据了
这些其实跟qt没关系 LZ应该补补C++的知识
------其他解决方案--------------------
可以用append方法向list中添加内容:
QList<QWidget*> list;
qDebug( ) << list.length();
list.append(new QPushButton);
qDebug() << list.at(0);
qDebug( ) << list.length();
------其他解决方案--------------------
刚测试过,头文件里添加两行声明,绝对不会出错。
随便找个Qt自带的例子,编译一下看看,能不能通过编译,怀疑是Qt配置问题。
------其他解决方案--------------------
空的你怎么用阿?你创建这个list干啥用?
------其他解决方案--------------------
还没用呢,就加了这两句代码。我要根据list1是一组类似QMovie的东西,我要根据这个创建一组播放的控件,也就是list2.
------其他解决方案--------------------
我知道要添加,可是该怎么添加呢?我什么都没做就报错了。
------其他解决方案--------------------
谢谢,我之前是做.NET的,没做过C++,被临时拉过来充数的。我没取数据,我是要往里面加数据。可是什么都没写就出错了。我想知道该怎么初始化?用new吗?
------其他解决方案--------------------
谢谢,还没到这一步就出错了。我就新建了一个工程,在MainWindow的头文件里加了那两句,编译运行就出错了。
------其他解决方案--------------------
如果只加一句就没问题,加两句就不行了。这是为什么?我觉得应该还是C++的问题,是不是引用了同一个地址?
------其他解决方案--------------------
好吧,现在确实是没问题了。但是这个代码昨天跑确实不行,现在就好了,我什么都没改,撞邪了。
------其他解决方案--------------------
这个是正常现象,经常的出现,代码正常,但是运行出错(内存错误),就clear工程再编译就好了,还不行就手动删除编译产生的文件,再编译。
------其他解决方案--------------------