Oh, and I just realized that QtQuick 2  in 5.8 now depends on a GUI, so your Qt 
Script will try to make some kind of UI call.

http://blog.qt.io/blog/2016/08/15/the-qt-quick-graphics-stack-in-qt-5-8/

The good thing there is a raster backend now available.  But I don't know about 
a dummy backend.

> Sent: Wednesday, February 15, 2017 at 2:50 PM
> From: "Ian Geiser" <[email protected]>
> To: "Jérôme Godbout" <[email protected]>
> Cc: "Jason H" <[email protected]>, "Interests Qt" <[email protected]>
> Subject: Re: [Interest] Replacing QScript with QML
>
> 
> 
> 
>  ---- On Wed, 15 Feb 2017 13:55:33 -0500 Jérôme Godbout <[email protected]> 
> wrote ---- 
>  > You could create a singelton Factory that will create the objects into 
> javascripts and wrap the whole creation into a simple functions, you can also 
> make a map from object name to the actual Qml Component. Just make sure you 
> give the object the proper parenting and ownership and delete them properly.
>  > // MyFactorySingelton.qmlpragma Singletonimport QtQuick 2.3
>  > QmlObject{ id: component  readonly property int objUno: 0 readonly 
> property int objTwo: 1
>  >  readonly property var objType: [    'objUno'  , 'objTwo' ]  readonly 
> property var objComponent: component.revaluate.concat( [    
> Qt.createComponent('ObjectUno.qml', Component.PreferSynchronous, component)  
> , Qt.createComponent('ObjectTwo.qml', Component.PreferSynchronous, component) 
> ])  function createByName(name, parent, initMap) // ex: 
> createByName('objUno', myParent, { 'width': 500, 'height': 200 }) {  return 
> createById(component[component.objType[name]], parent, initMap); }  function 
> createById(obj_index, parent, initMap) // ex: create(1, myParent, { 'width': 
> 500, 'height': 200 }) {  return objComponent[obj_index].create(parent, ); }  
> function create(comp, parent, initMap) {  return comp.createObject(parent, 
> initMap); }}
>  > you can use it into your javascript .import MyFactoryModule 0.1 as 
> MyFactory
>  > or qml script easily after thatimport MyFactoryModule 0.1 
> MyFactorySingelton.createByName('objUno')
>  > 
>  > If you are looking at only kicking some script, Component.onCompleted or 
> use the WorkerScript to kick javascript only 
> scripting:http://doc.qt.io/qt-5/qml-workerscript.html
> 
> My problem is that I only have C++ objects I want to create.  I looked at  a 
> "factory", but that meant I needed to not only register the types, but build 
> up a map and expose that.  Too bad there wasn't a way to even do a 
> Foo.createObject(...) from a component Foo that was defined in C++.
> 
>
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to