向QML公开复杂的Qt对象C++
Exposing complex C++ Qt object to QML
在一个C++文件中,我有一个类型为QList<QStringList>*
的对象,它应该是一个二维字符串数组。
目前,在C++我能够做到这一点:
// this will display the QString value in the Console,
// where entries is of type QList<QStringList>*
qDebug() << "test: " << entries->at(0).at(0);
我知道如何将此对象公开给 QML,但是我将如何在 QML 中导航/访问其功能?
在main.qml
中,我可以调用返回此对象的函数:
_app.getCalendar()
但是我如何导航它,就像上面的C++代码一样?
编辑:我实际需要做的是将二维字符串数组从C++发送到QML。我这样做的方式是否过于复杂?有没有其他方法可以做到这一点?
在你向 QML 公开的类中定义一个 INVOKABLE
getter 函数。
页眉:
class MyQmlClass : QObject
{
Q_OBJECT
public:
// ...
Q_INVOKABLE QString getString(int y, int y);
// ...
}
并在.cpp文件中实现它 广告如下:
QString MyQmlClass::getString(int x, int y)
{
return entries->at(x).at(y);
}
最后在 QML 中:
_app.getCalendar().getString(3, 4)
相关文章:
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- 如何注册Qt C++对象以在QML中使用它
- Qt对象所有权内存泄漏
- 以延长构造函数外部 QT 对象的生存期
- 我有一个 Qt 对象的 2d 数组,我已经用值播种了这些对象。如何访问数组中特定对象的值并更改它们?
- Qt对象如果使用'this'创建(更新)需要删除或自动删除?
- 在 cmake 中链接 Qt 对象
- 将流运算符添加到 Qt 对象
- 在 QT 对象类中声明 PCL 点云
- QT对象::连接:没有此类插槽信号到线程插槽
- 如何在调试期间查看Qt对象QByteArray的内容
- Qt对象删除导致崩溃
- 如何从线程的结果返回Qt对象(Qtfutur)
- QtWebkit javascript bridge,无法访问 Qt 对象方法
- 将 Qt 对象与 std::shared_ptr 一起使用
- 带有 Qt 对象的 Cmake 库
- 向QML公开复杂的Qt对象C++
- 从另一个 std::thread 调用 Qt 对象方法
- Qt 对象实例化查询
- C++中的静态成员Qt对象