Qt属性外的基类
Qt property outside of base class
我使用一个QML前端为我的c++应用程序工作良好到目前为止。但是,我计划整理我的代码并将函数拆分为更小的类
一开始,我的Property声明看起来像这样:
class mainBoard : public QObject
{
Q_OBJECT
Q_PROPERTY(double baroAltitude MEMBER baroAltitude NOTIFY pressureChanged)
public:
explicit mainBoard(QObject *parent = 0);
void start();
private:
double baroAltitude = 0;
signals:
void pressureChanged();
};
现在,我有了这个外部类,有了getter方法
#include "pressuresensor.h"
class mainBoard : public QObject
{
Q_OBJECT
Q_PROPERTY(double baroAltitude READ pressureSensors.getBaroAltitude NOTIFY pressureSensors.pressureChanged)
public:
explicit mainBoard(QObject *parent = 0);
void start();
private:
pressureSensor pressureSensors;
};
但是现在,我得到的只有:
mainboard.h:25: Parse error at "pressureSensors"
error: [moc_mainboard.cpp] Error 1
是否有更好的或正确的方法(因为它在工作:D) ?
谢谢!
Q_PROPERTY
不支持非相关类的getter/setter方法。
如果你真的想保留pressureSensor
类,你必须在mainBoard
类中提供getter/setter并转发调用。
class mainBoard : public QObject
{
Q_OBJECT
Q_PROPERTY(double baroAltitude READ getBaroAltitude)
public:
double getBaroAltitude() const {
return pressureSensors.getBaroAlitude();
}
private:
pressureSensor pressureSensors;
};
相关文章:
- 基类需要派生类属性
- 使用基类的C++和修改私有/受保护的属性
- 子类中具有不同值的静态基类属性
- 即使基类属性在完成向下转换时是虚拟的,是否有效
- 继承:派生类的基类属性可访问性
- 通过"a pointer of the base class"访问未在基类中声明的子类的方法或属性(动态)
- 基类如何知道其派生类的属性
- C++基类指针容器中,编辑特定对象的属性
- C++引用基类中的子类指针属性
- C++派生类的设置属性到从同一基类派生的未知类对象
- C++:新的基类,但它可以访问派生类的属性
- C++-填充派生类数据成员,同时设置基类属性值
- C++ 修改基类的属性
- 从基类指针比较模板化子类的属性
- 是否可以在初始化列表中使用基类属性
- 如何在C++中从基类访问派生类的属性
- 基类作为属性
- 使用派生类"istream"读取基类的属性
- 实现基类方法来访问派生类的属性
- 基类属性的不同初始化