Q_PROPERTY并且没有成员错误

时间:2012-10-05 08:37:44

标签: qt qt4

我看不出我做错了什么。我正在尝试在类中创建一些属性(就像我之前做的那样),但这次我得到错误“类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.P时我得到了错误类P没有名为P 的成员。我一直在阅读Qt documentation,我看不出有任何区别。有谁看到我做错了什么?

我正在使用Qt Creator 2.4.1和Qt 4.8。

[...编辑...]

以下是我尝试使用它的方法:

#include "p.h"

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

  c.Prop = 2;

  return 0;
}

这是我能想到的最简单的例子,我也遇到了同样的错误。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您需要像这样使用它:

P c;
c.setProperty("Prop", 42);  // set the property
c.property("Prop");         // retrieve the property