On Thu, Jun 23, 2022, at 14:25, Andrei Golubev wrote: > AFAIK this was done on purpose [1]. You need to import the QtQml module > inside your JS file e.g. > > .import QtQml 2.15 as CoreQML > > Then accessing the Qt object via CoreQML.Qt should give you the enumerations. > > [1]: https://codereview.qt-project.org/c/qt/qtdeclarative/+/319662 > merged as cbe1869fbe7048f34513b201a1d9111a0a64257a
This method was suggested on the Discord as well, but unfortunately it does not work. Trying to evaluate this script using QJSEngine::evaluate: .import QtQml 2.15 as CoreQML console.log(CoreQML.Qt.Checked) yields: At line 2: ReferenceError: CoreQML is not defined Is that something I should report as a bug? I'd appreciate any other potential workarounds. Thanks, Thorbjørn > > -- > Best Regards, > Andrei > *From:* Interest <interest-boun...@qt-project.org> on behalf of > Thorbjørn Lindeijer <bj...@lindeijer.nl> > *Sent:* Monday, June 20, 2022 5:02 PM > *To:* ;interest@qt-project.org;;; <interest@qt-project.org> > *Subject:* [Interest] Qt 5 -> 6: In QQmlEngine, Qt.Checked, etc. are no > longer available > > Dear list, > > I'd like to upgrade the releases of my application from Qt 5.15 to Qt > 6.2, but I'm met with a loss in functionality that I'm not sure how to > resolve. > > My application is scriptable using QQmlEngine, and with Qt 5, the > loaded JS files had the global Qt namespace values available as part of > the "Qt" variable: > >> Object.keys(Qt) > Asynchronous,Synchronous,color0,color1,black,white,darkGray,gray,lightGray,red,green,blue,cyan,magenta,yellow,darkRed,darkGreen,darkBlue,etc. > > The list goes on and on, so I've truncated it. But now with Qt 6, only > a handful of members remain, basically none of the global namespace > values are available anymore: > >> Object.keys(Qt) > objectName,application,platform,inputMethod,styleHints,callLater,uiLanguage,objectNameChanged,include,isQtObject,color,rgba,hsla,hsva,colorEqual,rect,point,size,vector2d,vector3d,vector4d,quaternion,matrix4x4,lighter,darker,alpha,tint,formatDate,formatTime,formatDateTime,locale,url,resolvedUrl,openUrlExternally,font,fontFamilies,md5,btoa,atob,quit,exit,createQmlObject,createComponent,binding > > I did a quick test by loading a QML file, and in that file the value of > Qt.Checked is available: > > module.js: > > const f = __filename > const c = Qt.createComponent(`${FileInfo.path(f)}/test.qml`) > let window = c.createObject() > tiled.log(`from JS module: ${Qt.Checked}`) > > test.qml: > > import QtQml > QtObject { > Component.onCompleted: { > tiled.log(`from QML component: ${Qt.Checked}`) > } > } > > The output: > > Importing module '/home/bjorn/.config/tiled/extensions/modules.mjs' > from QML component: 2 > from JS module: undefined > > Does anybody have any idea how I can make the Qt namespace values > available in JS files when using Qt 6? This is critical since I depend > on a number of these values in my scripting API. > > Thanks, > Thorbjørn > _______________________________________________ > Interest mailing list > Interest@qt-project.org > https://lists.qt-project.org/listinfo/interest _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest