我有一个从我的 QML 代码调用的 C++ 函数。当函数是void
或返回时,int
一切都很好。但是,当返回 aQVariant
并且我调用该函数时,该函数不会执行。
C++ 函数
QVariant Wifi::scan(){
QVariantList varlist;
QVariant var;
qDebug("Inside function");
varlist.append("Test1");
varlist.append("Test2");
var = QVariant(varlist);
return var;
}
.h 文件
include <QVariant>
class Wifi : public QObject
{
Q_OBJECT
public:
Wifi();
Q_INVOKABLE QVariant scan();
Q_INVOKABLE int checkIfConnected();
QStringList* getDevice();
};
在 QML 文件中“Test”打印但“Test2”没有。C++ 部分的“内部函数”也不打印。所以我假设它卡住了或wifi.scan()
部分原因
console.debug("Test")
var anArray = wifi.scan()
for (var i=0; i<anArray.length; i++)
console.log("Array item:", anArray[i])
console.debug("Test2")
我没有收到任何类型的错误消息。我还尝试将返回值分配给“属性变体”,然后自己运行它(wifi.scan()
)而不将返回值分配给任何东西。关于可能是什么问题的任何想法?