1

何が間違っているのかわかりません。クラスにいくつかのプロパティを作成しようとしています (以前に行ったように) が、今回は「クラス Foo に MyProp という名前のメンバーがありません」というエラーが表示されます。

ヘッダーは次のとおりです。

#ifndef P_H
#define P_H

#include <QObject>

class P : public QObject
{
    Q_OBJECT
    Q_PROPERTY(int Prop READ getProp WRITE setProp)
  public:
    explicit P(QObject *parent = 0);

    int getProp() const;
    void setProp(int nP);
  private:
    int m_p;
};

#endif // P_H

cpp ファイルは次のとおりです。

#include "p.h"

P::P(QObject *parent) :
  QObject(parent)
{
}

int P::getProp() const
{
  return m_p;
}

void P::setProp(int nP)
{
  m_p = nP;
}

しかし、 foobar.PI を使用しようとすると、クラス P には P という名前のメンバーがありませんというエラーが発生しました。Qt のドキュメントを読んでいますが、違いがわかりません。誰かが私が間違っていることを見ていますか?

Qt Creator 2.4.1 と Qt 4.8 を使用しています。

[... 編集 ...]

これが私がそれを使用しようとしている方法です:

#include "p.h"

int main(int argc, char *argv[])
{
  P c;

  c.Prop = 2;

  return 0;
}

これは私が考えることができる最も単純な例であり、同じエラーが発生しました。

前もって感謝します。

4

1 に答える 1

3

次のように使用する必要があります。

P c;
c.setProperty("Prop", 42);  // set the property
c.property("Prop");         // retrieve the property
于 2012-10-05T09:52:50.623 に答える