使用最新版本的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来自何处,因为它未定义:
为什么它在Mac上与众不同?
更新1
我硬编码了我的emit方法值:
emit this->serviceSuccess("should_be_method", "should_be_data");
并且在QML中,该方法仍然以未定义的方式返回。出于某种原因,QML Connections认为onServiceSuccess有三个参数:
更新2
似乎当我运行应用程序并使用console.log()时,方法和数据是正确的。但是当我逐步完成它时,这是不正确的。所以我想知道为什么在两个都处于调试模式时运行和单步执行会有什么不同?