QML连接Mac差异

时间:2018-06-04 04:39:38

标签: qt qml

使用最新版本的Qt和Android Studio。 在处理Android应用程序时,我已经在Windows环境中使用了以下代码。

c ++信号代码:

signals:
  void serviceSuccess(QVariant method, QVariant data);

在我的代码中的某处,我发出信号

emit this->serviceSuccess(this->pageSection, jsonString);

其中this->pageSection是一个用于保存调用页面的字符串,jsonString是一个QJsonObject对象的字符串

在我的QML中:

Connections{
    target: proxySchemaNSession

    onServiceSuccess: {

        if(method === 'progress@validate_session'){
            proxySchemaNSession.retrieveUserPermissions('progress@retrieve_user_permissions');
        }

但是在Mac上开发Android应用程序时,变量数据将以未定义的形式返回,而数据具有应该是什么方法的值。不确定变量json来自何处,因为它未定义:

enter image description here

为什么它在Mac上与众不同?

更新1

我硬编码了我的emit方法值:

emit this->serviceSuccess("should_be_method", "should_be_data");

并且在QML中,该方法仍然以未定义的方式返回。出于某种原因,QML Connections认为onServiceSuccess有三个参数:

enter image description here

更新2

似乎当我运行应用程序并使用console.log()时,方法和数据是正确的。但是当我逐步完成它时,这是不正确的。所以我想知道为什么在两个都处于调试模式时运行和单步执行会有什么不同?

0 个答案:

没有答案