首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向QML公开复杂的C++ Qt对象

向QML公开复杂的C++ Qt对象
EN

Stack Overflow用户
提问于 2014-12-04 18:05:13
回答 1查看 703关注 0票数 1

在C++文件中,我有一个QList<QStringList>*类型的对象,它应该是一个二维字符串数组。

目前,在C++中,我可以这样做:

代码语言:javascript
复制
// 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中,我可以调用返回此对象的函数:

代码语言:javascript
复制
_app.getCalendar()

但是,像上面的C++代码那样,我如何导航呢?

编辑:我实际上需要做的是从C++发送一个二维字符串数组到QML。我这么做是不是太复杂了?还有别的办法来完成这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-04 20:12:28

在向QML公开的类中定义一个INVOKABLE getter函数。

标题:

代码语言:javascript
复制
class MyQmlClass : QObject
{
    Q_OBJECT

public:
    // ...

    Q_INVOKABLE QString getString(int y, int y);


    // ...
}

并在.cpp文件广告中实现它:

代码语言:javascript
复制
QString MyQmlClass::getString(int x, int y)
{
    return entries->at(x).at(y);
}

最后,在QML中:

代码语言:javascript
复制
_app.getCalendar().getString(3, 4)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27300922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档