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

Providing Q_PROPERTY in subclass of Q_OBJECT result in Error 1

本文关键字:PROPERTY 错误 OBJECT 子类      更新时间:2023-10-16

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

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

但似乎我错过了一个非常基本的信息,因为我不能得到这个

Baseclass:

#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宏,我得到Cannot assign to non-existent property type

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

提前感谢!

谢谢你的提示!我终于发现我忘记把void typeChanged()放在signals:下面了回想起来真是微不足道

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