在Q_OBJECT的子类中提供Q_PROPERTY导致错误1

时间:2014-03-22 18:26:30

标签: c++ qt

我需要你帮助解决以下问题:

我有一个基类,它派生自QObject并具有Q_OBJECT宏。在另一个类中,我想要基类的子类,并提供在qml(Q_PROPERTY)中使用的属性。

但似乎我错过了一条非常基本的信息,因为我无法实现这一目标

基类:

#ifndef A_H
#define A_H
#include <QObject>

class A: public QObject
{
    Q_OBJECT    
    Q_PROPERTY(QString name READ getName CONSTANT)
...

子类:

#ifndef B_H
#define B_H
#include "classpath/A.h"
class B: public A
{
    Q_OBJECT
    Q_PROPERTY(QString type READ getType WRITE setType NOTIFY typeChanged)
...

此外,我已注册qml qmlRegisterType<B>("CustomClasses",1,0,"B");

的类型

在qml文件中,我只是创建一个B项B{ type: "B" }

我得到的错误如下:[debug/moc_b.cpp] Error 1

对我和我的Qt知识不是很有用的信息

如果我删除Q_OBJECT宏{ge} Cannot assign to non-existent property type

我希望你们中的一个能解释我做错了什么!

提前致谢!

1 个答案:

答案 0 :(得分:0)

感谢您的提示! 我终于弄清楚我忘了void typeChanged()置于signals:之下 回想起来非常微不足道

感谢manni66!我不知道我的IDE中有更详细的编译器输出。这使我得到了正确的解决方案。