如何修复 "Duplicate method name: invalid override of property change signal or superclass signal"?
How to fix "Duplicate method name: invalid override of property change signal or superclass signal"?
在 Qt 5.15.1 上我想连接到 objectNameChanged
signal of a QML Item
using Connections
:
import QtQuick 2.15
import QtQuick.Window 2.15
Window {
visible: true
Item {
id: foo
}
Connections {
target: foo
// onObjectNameChanged: console.log(foo.objectName) // old syntax, causes "Implicitly defined onFoo properties in Connections are deprecated."
function onObjectNameChanged() {
console.log(foo.objectName)
}
}
}
代码产生以下错误:
Duplicate method name: invalid override of property change signal or superclass signal
我当然可以这样写:
Item {
id: foo
onObjectNameChanged: console.log(foo.objectName)
}
但我需要使用 Connections
。
如何解决这个问题?
来自我的评论:
错误的原因很容易解释:Connections也是一个QObject,所以它也有objectName 属性(和关联的信号)并且映射目标的objectName 属性时它会产生问题,我认为没有解决方法,因此我建议您报告错误。
在 Qt 5.15.1 上我想连接到 objectNameChanged
signal of a QML Item
using Connections
:
import QtQuick 2.15
import QtQuick.Window 2.15
Window {
visible: true
Item {
id: foo
}
Connections {
target: foo
// onObjectNameChanged: console.log(foo.objectName) // old syntax, causes "Implicitly defined onFoo properties in Connections are deprecated."
function onObjectNameChanged() {
console.log(foo.objectName)
}
}
}
代码产生以下错误:
Duplicate method name: invalid override of property change signal or superclass signal
我当然可以这样写:
Item {
id: foo
onObjectNameChanged: console.log(foo.objectName)
}
但我需要使用 Connections
。
如何解决这个问题?
来自我的评论:
错误的原因很容易解释:Connections也是一个QObject,所以它也有objectName 属性(和关联的信号)并且映射目标的objectName 属性时它会产生问题,我认为没有解决方法,因此我建议您报告错误。