2

ゲームを作ろうとしていますが、Playerのクラスを作成しました。クラスは、QGraphicsItemを継承する「Entity」を継承します。

#ifndef PLAYER_H
#define PLAYER_H

#include "entity.h"

class Player : public Entity
{
public:
    Player( QString, int, int, int position );

    QRectF boundingRect() const;
    void paint( QPainter *painter,
                const QStyleOptionGraphicsItem *option,
                QWidget *widget );

    void move_north();
    void move_south();
    void move_west();
    void move_east();

    void start_moving();
    void stop_moving();

    void switch_step();

    bool its_moving();

    void change_pos(int);

private:
    QPoint position;
    bool is_moving;

private signals:
    void Move();
};

#endif // PLAYER_H

しかし、33行目で「expected':'before'protected'」というエラーが発生し続けます。

4

2 に答える 2

8
// private signals:
signals:

にはアクセス修飾子があってはなりませんsignals。スロットに対してのみ行います。

MOC の内部では、Qt はシグナルを独自のアクセス修飾子に置き換えます。

于 2012-10-11T21:08:57.033 に答える
6

この回答には、関連する洞察がいくつかあります。シグナルは定義上protectedであるため、コードは に変換されprivate protected:、コンパイラはこれについて不平を言います。

つまり、言えませんprivate signals:。ただ言ってsignals:ください。

于 2012-10-11T21:09:17.023 に答える