Qt中的模糊错误

时间:2012-10-11 21:04:27

标签: c++ qt class

我正在尝试制作游戏,并为玩家创建了一个类。该类继承了“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行收到错误“预期”:'在'受保护'之前'。

2 个答案:

答案 0 :(得分:8)

// private signals:
signals:

signals上不应该有访问修饰符,只能为插槽执行此操作。

在MOC内部,Qt用自己的访问修饰符替换信号,这是受保护的来源。

答案 1 :(得分:6)

This answer has some relevant insights.信号按定义protected,因此您的代码将转换为private protected:,编译器会抱怨。

换句话说,你不能说private signals:。只需说signals: