我正在尝试制作游戏,并为玩家创建了一个类。该类继承了“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行收到错误“预期”:'在'受保护'之前'。
答案 0 :(得分:8)
// private signals:
signals:
signals
上不应该有访问修饰符,只能为插槽执行此操作。
在MOC内部,Qt用自己的访问修饰符替换信号,这是受保护的来源。
答案 1 :(得分:6)
This answer has some relevant insights.信号按定义protected
,因此您的代码将转换为private protected:
,编译器会抱怨。
换句话说,你不能说private signals:
。只需说signals:
。