QList的用法,该如何解决
QList的用法在MainWindow的头文件中定义QListQWidget* list1QListQWidget* list2之后运行直接就引用
QList的用法
在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工程再编译就好了,还不行就手动删除编译产生的文件,再编译。
[其他解释]
的确如此,有时候应该是一些目标文件没有更新。如果觉得代码没有问题,经常需要清除并重新构建试试。