Signal handler name clash
This warning category is spelled [signal-handler-name-clash] by qmllint.
Property is interpreted as a signal handler
What happened?
You declared a property whose name follows the on<Signal> pattern QML uses for signal handlers, and the object also has a member the handler could belong to: either a signal <signal> from the type itself or one of its base types, or a property <signal> declared in the same object.
Why is this bad?
The signal handler interpretation wins. Any binding to such a property, including the property's own initializer, is compiled as a signal handler rather than as a property binding. A literal initializer makes the component fail to load with Cannot assign a value to a signal (expecting a script to be run), and an expression initializer is silently run as a signal handler, leaving the property at its default value.
Example
import QtQuick
Item {
property color primary: "green"
property color onPrimary: "white" // not ok: read as a handler for "primary"
signal accepted()
property bool onAccepted: false // not ok: read as a handler for the "accepted" signal
}To fix this warning, rename the properties so that they do not start with on followed by an upper-case letter:
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.