使用 enum 参数将 C++ 对象信号连接到 QML 信号处理程序
connect c++ object signal to QML signal handler with enum parameter
我有以下 c++ 插件代码:
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);
}
但是我遇到了以下错误:
Invalid signal parameter type: WIFIStat
如何在处理程序函数中定义枚举NetworkManager::WIFIStat
类型参数?
我在处理程序函数参数中使用var解决了这个问题:
signal wifiStatusChanged(var wifiStatus);
但我最终使用了另一种方法,如下所述:https://stackoverflow.com/a/29202462/2614418
Connections{
target: network_manager
onWifiStatusChanged: {
console.log("Status:"+wifiStatus)
}
}
相关文章:
- 如何使用connect将qml按钮与同一类的cpp函数连接起来
- QT - 连接 Qml 按钮 单击到 Cpp 构造函数
- 连接 qml 拨号和 qml 中的滑块
- 可以在 QObject::connect() C++中连接 QML 对象现有信号?
- 销毁 qml 对象后的信号槽连接
- 将QAbstractTableModel与QML TableView连接起来
- QML和C 连接到信号
- 如何使用C 插槽连接QML信号
- QT:C 信号到QML连接
- 连接从 QML 到 Qt 的信号:var 到 QList<QString>
- QML组件与信号连接
- Qt-Qml连接到上下文属性的QObject属性的信号
- 当连接的 QML 属性更改时C++对象不会获取值
- 连接到来自 QML C++信号
- QObject::connect:在 c++ Qt 5.3 中连接 qml 信号时没有这样的信号
- 如何连接来自c++代码的嵌套qml项的信号
- 无法将 QML 组合框信号连接到插槽C++
- 级联导航窗格:连接到另一个qml文件的对象信号
- 动态连接 QML 中图形的节点 la Pd 或 Max(又名"patching"接口)
- 如何在qml上检查网络连接?