首页 > 解决方案 > 如何修复“重复的方法名称:属性更改信号或超类信号的无效覆盖”?

问题描述

在 Qt 5.15.1 上,我想使用以下命令连接到objectNameChangedQMLItem的信号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)
        }
    }
}

该代码产生以下错误:

重复的方法名称:属性更改信号或超类信号的无效覆盖

我当然可以这样写:

Item {
    id: foo

    onObjectNameChanged: console.log(foo.objectName)
}

但我需要使用Connections.

如何解决这个问题?

标签: qtqmlqt5

解决方案


从我的评论:

错误的原因很容易解释:Connections 也是一个 QObject,所以它也有 objectName 属性(和关联的信号),并且在映射目标的 objectName 属性时会产生问题,我认为没有解决方法,以便我建议您报告该错误。


推荐阅读