1

我需要创建一个 QVectorIterator 来迭代 QStrings 的 QVector,如下所示:

#include <QString>
#include <QVectorIterator>

#include <QLabel>
#include <QTimer>

class Dice : public QLabel
{
    Q_OBJECT

    private:
        QVector<QString> dice_faces;
        QVectorIterator<QString> it( dice_faces );
        QTimer *timer;
    ...

但是我得到了这个错误,不明白出了什么问题,或者 QVectorIterator 不能迭代 QString 向量?

Dice.h:16: error: 'dice_faces' is not a type
     QVectorIterator<QString> i( dice_faces );
                                 ^
4

1 回答 1

2

您需要在构造函数的初始化器列表中初始化迭代器

#include <QString>
#include <QVectorIterator>

#include <QLabel>
#include <QTimer>

class Dice : public QLabel
{
    Q_OBJECT

    public:
        Dice(QObject *parent);

    private:
        QVector<QString> dice_faces;
        QVectorIterator<QString> it( dice_faces );
        QTimer *timer;
    // ...

骰子.cpp

// ...

Dice::Dice(QObject *parent)
  : QLabel(parent),
    it(dice_faces)
{
}
于 2014-12-14T21:15:12.357 回答