gpt4 book ai didi

c++ - 将复杂的 C++ Qt 对象暴露给 QML

转载 作者:行者123 更新时间:2023-11-30 00:49:47 24 4
gpt4 key购买 nike

在 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)

关于c++ - 将复杂的 C++ Qt 对象暴露给 QML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27300922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com