我需要你帮助解决以下问题:
我有一个基类,它派生自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
我希望你们中的一个能解释我做错了什么!
提前致谢!
答案 0 :(得分:0)
感谢您的提示!
我终于弄清楚我忘了void typeChanged()
置于signals:
之下
回想起来非常微不足道
感谢manni66!我不知道我的IDE中有更详细的编译器输出。这使我得到了正确的解决方案。