I think that QML/JS is not viable for scripting of QtWidgets since public 
functions are not available when registering Qt classes as types (only slots 
and Q_INVOKABLE functions next to properties). Without the public class 
functions only very basic functionality is exposed to the scripting engine. For 
custom classes one has of course control over what will be exposed but one can 
not change this for existing QtWidget classes (except when changing source 

Best wishes

Rainer Goebel

> On 14 Nov 2022, at 09:31, Ulf Hermann via Interest <interest@qt-project.org> 
> wrote:
>> That is an intesting question because it somehow pin points something that is
>> not clear to me. Perusing the documentation, I saw that QQmlEngine derives 
>> from
>> QJSengine. I cannot figure out which is best to employ in my use case:
>> scripting a QtWidgets C++ application. Can I use QML as a scripting language 
>> in
>> a currently C++-only program ?
> Sure, you can. QML, the language, is independent from any UI technology. Most 
> people use it with Qt Quick, but no one forces you to use Qt Quick. When 
> using widgets you'll have to do some more "boring" work yourself: There is no 
> pre-made QtWidgets QML module, but you can certainly register the types 
> you're interested in into your own modules using QML_FOREIGN.
> Mind that structured and constructible value types will only be available 
> from Qt 6.5 on. You can use the snapshot builds already for prototyping, 
> though.
> best regards,
> Ulf
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org
> https://lists.qt-project.org/listinfo/interest

Interest mailing list

Reply via email to