8

g++以下のコードで解析エラーが報告されています。

class Sy_timeLineDelegateScene : public QGraphicsScene
{
    Q_OBJECT
public:
    Sy_timeLineDelegateScene( Sy_animPropertyTimeLine* timeline,
                              Sy_animClock* clock,
                              QObject* parent = nullptr );
    virtual ~Sy_timeLineDelegateScene() {}

protected slots:   // Parse error at ":"
    typedef QMap< Sy::Frame, Sy_timeLineDelegateKey* > DelegateTimeLine;
...

私のクラスはから派生し、エラーの前にマクロQObjectを宣言しましたQ_OBJECTが、その部分をコメントアウトすると、slots正常にコンパイルされます。私はQt何年も使用していますが、これまでに見たことがありません。何かばかげているに違いありませんが、何が問題を引き起こしているのかわかりません。

4

1 に答える 1

8

クラス定義の「スロット」セクションと「シグナル」セクションには、関数のみを含める必要があります。型でもメンバー変数でもありません。

typedefpublic、protected、または private セクションに移動する必要があります。

class Sy_timeLineDelegateScene : public QGraphicsScene
{
    Q_OBJECT
public:
    Sy_timeLineDelegateScene( Sy_animPropertyTimeLine* timeline,
                              Sy_animClock* clock,
                              QObject* parent = nullptr );
    virtual ~Sy_timeLineDelegateScene() {}

    typedef QMap< Sy::Frame, Sy_timeLineDelegateKey* > DelegateTimeLine;

protected slots:
...
于 2012-05-31T21:42:41.083 に答える