C++继承与 Qml 支持
C++ inheritance with Qml support
我有一组类ClassA
、ClassB
和ClassC
:
class ClassA : public QObject
{
Q_PROPERTY(int propertyA READ propertyA WRITE setPropertyA NOTIFY propertyAChanged)
}
class ClassB : public QObject
{
Q_PROPERTY(int propertyB READ propertyB WRITE setPropertyB NOTIFY propertyBChanged)
}
class ClassC : public ClassA, public ClassB //problem: both classes are derived from QObject
{
Q_PROPERTY(int propertyC READ propertyC WRITE setPropertyC NOTIFY propertyCChanged)
}
每个类都有必须在 Qml 中可访问的属性,这意味着每个类都必须实现QObject
类。实现这一点的最佳方法是什么?
问候
创建一个访问这些属性的系统,方法是创建前面带有Q_INVOKABLE的方法,而不是简单地在 ClassC 中创建 ClassA 和 ClassB 的实例来使用 Q_PROPERTY,然后重新实现属性以访问这些实例
class ClassC : public QObject //problem: both classes are derived from
{
Q_PROPERTY(int propertyA READ propertyA WRITE setPropertyA NOTIFY propertyCChanged)
Q_PROPERTY(int propertyB READ propertyB WRITE setPropertyB NOTIFY propertyCChanged)
Q_OBJECT
public:
ClassB bObject;
Q_INVOKABLE int propertyB() {
return bObject.property("propertyB");
}
}
相关文章:
- 从C++实例化QML
- 编译时未启用intel oneApi CUDA支持
- 使用CMake创建QML插件
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 使用CMake检测支持的C++标准
- 为什么istream不支持右值提取
- QT通过C++添加映射QML项目
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 扩展光电二极管探测器以支持多个传感器
- 如何在没有信号的情况下从C++执行QML插槽
- MSVC是否支持C++11样式的属性而不是__declspec
- QML按钮点击功能执行顺序
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 建议在运行时将带有类实例的列表从c++导入qml
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- Qt Quick-如何仅从c++代码与qml属性交互
- C++继承与 Qml 支持
- Qt5.2 Qml支持Ubuntu全局菜单
- 可以使用缓存使QML应用程序“离线支持”
- Meego Nokia N950是否支持C++QML绑定