Quantcast
Viewing all articles
Browse latest Browse all 4972

Dynamically adding items

I want to dynamically add items to a custom component when it’s created. According to http://qt-project.org/doc/qt-4.8/qdeclarativedynamicobjects.html , I can do this by creating an external JavaScript file,     import "MyNavDrawer.js" as Scripts; and call it from onCompleted:     Component.onCompleted: { Scripts.createItems(); } My JavaScript file looks like this: var listViewComponent;   function createItems() {     console.log ("createItems");       listViewComponent = Qt.createComponent ("MyNavDrawerListView.qml");       if (listViewComponent.status === Component.Ready)     {         console.log ("ready");         createItemsFinish();     }     else     {         console.log ("delayed");         listViewComponent.statusChanged.connect (createItemsFinish);     }       console.log ("end of createItems"); }   function createItemsFinish() {     console.log ("createItemsFinish");       if (listViewComponent.status !== Component.Ready)     {         console.log ("createItemsFinish: Component still not ready! " + listViewComponent.errorString());         return;     }       for (var i = 0; i < items.length; i++)     {         console.log (items[i].caption);         var v = listViewComponent.createObject (drawerFrame, { "data": items[i] });           if (v === null)         {             console.log ("createItemsFinish: Failed to create item " + i + "!");             return;         }    } } createItems is in fact called, but the signal handler createItemsFinish isn’t. The log output is: qml: createItems qml: delayed qml: end of createItems What am I doing wrong?

Viewing all articles
Browse latest Browse all 4972

Trending Articles