首页 > 解决方案 > QML Connection 和 IDE - 新语法:不推荐使用 Connections 中隐式定义的 onFoo 属性

问题描述

在 QML 1.5.0 的新版本中,建议使用新的连接语法,例如

MouseArea {
Connections {
    function onClicked (mouse) {foo (mouse)}
}

使用“Qt Design Studio 1.5.0”或“Qt Creator 4.12.1”IDE 我得到这个警告。

使用旧语法,连接在表单编辑器 -> 连接视图窗口中可见, 并且在更改为新连接后没有显示任何内容。

表单编辑器 -> 与旧语法的连接。

在 UI 文件中,例如 main.ui.qml

旧语法:

我收到一条消息:

Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo (<arguments>) {...}

更正新语法后,消息是:Qt Quick UI 表单不支持函数。(M22)。现在无法使用表单编辑器编辑窗口。

我也无法与财产建立联系,例如

property bool mouseEnable: false

Connections {
    target: parent
    function onMouseEnableChanged(parent)
}

这可能是一个信号处理程序,但没有目标的信号与名称匹配。

可以保留旧语法而不显示警告,或者有人知道如何使用新语法而不会出现上述 IDE 错误?

标签: qtideqmlqt-design-studio

解决方案


推荐阅读