QML Connections:不推荐使用 Connections 中隐式定义的 onFoo 属性
QML Connections: Implicitly defined onFoo properties in Connections are deprecated
升级到 Qt 5.15 时出现以下错误消息:
QML Connections: Implicitly defined onFoo properties in Connections are deprecated.
Use this syntax instead: function onFoo(<arguments>) { ... }
下面粘贴对应的QML代码
Connections {
target: AppProxy
onLogsReady: function(logs) {
textLogs.text = logs
}
}
其中 onLogsReady
是 AppProxy
class 中定义的信号:
class AppProxy : public QObject {
Q_OBJECT
Q_DISABLE_COPY(AppProxy)
public:
AppProxy(QObject* parent = 0);
~AppProxy();
signals:
void logsReady(QString logs);
// ...
};
我想知道如何抑制这个警告。
在 Qml 5.15 中有一个新的连接语法。在您的情况下,它看起来像这样:
Connections {
target: AppProxy
function onLogsReady(logs) {
textLogs.text = logs
}
}
您可以在此处阅读更多相关信息:https://doc.qt.io/qt-5/qml-qtqml-connections.html
@luffy 回答正确,但不完全。如果您只是进行这些更改,至少对我而言,它并没有解决问题。修复它的是在受这些更改影响的 qml 文件中添加“import QtQml 2.15”(如 https://doc.qt.io/qt-5/qml-qtqml-connections.html 中所述)。
不确定这是否有帮助,只是想补充问题。
在我的案例中,除了@luffy 和@Lidekys 解决方案外,将此行添加到项目的 pro 文件中也解决了问题。
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
升级到 Qt 5.15 时出现以下错误消息:
QML Connections: Implicitly defined onFoo properties in Connections are deprecated.
Use this syntax instead: function onFoo(<arguments>) { ... }
下面粘贴对应的QML代码
Connections {
target: AppProxy
onLogsReady: function(logs) {
textLogs.text = logs
}
}
其中 onLogsReady
是 AppProxy
class 中定义的信号:
class AppProxy : public QObject {
Q_OBJECT
Q_DISABLE_COPY(AppProxy)
public:
AppProxy(QObject* parent = 0);
~AppProxy();
signals:
void logsReady(QString logs);
// ...
};
我想知道如何抑制这个警告。
在 Qml 5.15 中有一个新的连接语法。在您的情况下,它看起来像这样:
Connections {
target: AppProxy
function onLogsReady(logs) {
textLogs.text = logs
}
}
您可以在此处阅读更多相关信息:https://doc.qt.io/qt-5/qml-qtqml-connections.html
@luffy 回答正确,但不完全。如果您只是进行这些更改,至少对我而言,它并没有解决问题。修复它的是在受这些更改影响的 qml 文件中添加“import QtQml 2.15”(如 https://doc.qt.io/qt-5/qml-qtqml-connections.html 中所述)。
不确定这是否有帮助,只是想补充问题。
在我的案例中,除了@luffy 和@Lidekys 解决方案外,将此行添加到项目的 pro 文件中也解决了问题。
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0