2017-06-14 45 views
0

我有以下C++插件代码:连接C++对象信号,以QML信号处理程序以枚举参数

class NetworkManager : public QObject 
{ 
Q_OBJECT 

... 
enum WIFIStat{ 
    STAT_NOTINITED, 
    STAT_INITED 
}; 
Q_ENUM(WIFIStat) 

Q_PROPERTY(WIFIStat wifiStatus READ wifiStatus NOTIFY wifiStatusChanged) 

,我要连接到的信号处理程序中QML:

signal wifiStatusChanged(WIFIStat wifiStatus); 

onWifiStatusChanged: { 
    console.log(wifiStatus) 
} 

Component.onCompleted: { 
    network_manager.wifiStatusChanged.connect(wifiStatusChanged); 
} 

,但我“M得到follwing错误:

Invalid signal parameter type: WIFIStat 

如何可以定义枚举NetworkManager::WIFIStat类型参数INT汉dler功能?

+0

这似乎是一个答案:HTTPS ://stackoverflow.com/questions/20089196/how-to-access-c-enum-from-qml – AlexanderVX

+0

如果我把信号wifiStatusChanged(NetworkManager.WIFIStat wifiStatus);我得到:错误:意外的令牌“。” –

+0

好的。现在很清楚这有什么问题。我读了答案。 – AlexanderVX

回答

0

我解决了使用VAR的问题,我的处理函数参数:

signal wifiStatusChanged(var wifiStatus); 

但最后我用另一种方法是说在这里: https://stackoverflow.com/a/29202462/2614418

Connections{ 
    target: network_manager 
    onWifiStatusChanged: { 
     console.log("Status:"+wifiStatus) 
    } 
}