新手,刚学QT,碰到个小问题
在Creator自带教程上,关于遍历器有这个一段例程:
QList<float> list;
...
QListIterator<float> i(list);
while (i.hasNext())
qDebug() << i.next();
下面是我自己写在类声明里的:
QList<float> flist;
QListIterator<float> i(flist); //编译错误 显示 flist is not a type
还有这一段:
QStringList list;
QListIterator<QString> i(QStringList list);
.........
if (i.hasPrevious()) //这里也显示错误 i does not have class type
其实上面这两段几乎都是从书上或者网上的例程里摘抄下来的,不知道为何产生报错。难道是版本原因?我用的QT5.2和5.4
------解决思路----------------------
QList<float> flist;
QListIterator<float> i(flist); //编译错误 显示 flist is not a type
我这里可以编译通过.
QT4.8.5
QTCREATOR 3.1.0 OPENSOURCE
------解决思路----------------------
#include <QCoreApplication>
#include <QList>
#include <QtDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QList<float> floatList;
floatList << 1.00
<< 2.00
<< 3.12
<<4.40;
QListIterator<float> i(floatList);
int count=0;
while(i.hasNext())
{
qDebug()<<"current " << count << " , item is "<<i.next();
count++;
}
return a.exec();
}
运行结果:
------解决思路----------------------
我怎么丝毫没看出是版本的问题呢?
1,你给出的错误是你所有错误中的第一个么?排错一定要从第一个开始。
2. 你的第一段代码,之前包含必须的头文件了么 QList?
3. 你的第二段代码,存在明显的代码错误。
4. 五楼给的列子,你真是试过了么?
5. 你真的在官网上认真找了么? http://download.qt.io/archive/qt/
------解决思路----------------------
#include <QCoreApplication>
#include <qdebug.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QList<float> floatList;
floatList << 1.00
<<2.00
<<3.00
<<4.00;
QListIterator<float>i(floatList);
int count = 0;
while(i.hasNext())
{
qDebug()<<"curren"<<count<<",Item is"<<i.next();
count++;
}
return a.exec();
}
Q4.7.0 没问题,可以运行。