Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
6.0
Description
slate-old-type-reg.zip uses qmlRegisterType and friends to register types:
void Application::registerQmlTypes() { qmlRegisterType<CanvasPaneItem>("App", 1, 0, "CanvasPaneItem"); qmlRegisterType<ImageCanvas>(); qmlRegisterType<ImageCanvas>("App", 1, 0, "ImageCanvas"); qmlRegisterUncreatableType<CanvasPane>("App", 1, 0, "CanvasPane", "Can't create instances of CanvasPane"); qRegisterMetaType<CanvasPane*>(); qRegisterMetaType<CanvasPaneItem*>(); qRegisterMetaType<ImageCanvas*>(); }
import QtQuick 2.13 import QtQuick.Controls 2.13 import App 1.0 ApplicationWindow { id: window width: 1200 height: 800 CanvasPaneItem { id: paneItem pane: canvas.paneAt(0) // pane: theCanvas.paneAt(0) anchors.fill: parent } }
It fails with:
QMetaProperty::read: Unable to handle unregistered datatype 'ImageCanvas*' for property 'CanvasPaneItem::canvas' qrc:/qml/main.qml:32: TypeError: Cannot call method 'paneAt' of undefined
You can also uncomment the context property code (and comment out pane: canvas.paneAt(0)) to get this error message:
qrc:/qml/main.qml:33:9: Unable to assign CanvasPane to [unknown property type]
The same result can be seen with slate-new-type-reg.zip, which uses the new type registration macros.
It works as expected (with no errors) in 5.15.
Attachments
Issue Links
- is required for
-
QTBUG-82922 Register types declaratively
- Closed