2

我正在尝试制作游戏,并且为 Player 创建了一个类。该类继承“Entity”,后者继承QGraphicsItem。

#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 行不断收到错误“预期 ':' 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 回答