Den 2015-01-21 09:24, skrev Alexander Ivash:
Yes, your are right, there was an error in my sample, but even fixing it doesn't change a lot: ui.qml files becomes not editable via QtCreator's QML designer due to presence

onClicked: root.onClicked(root.model.get(index)); /// this line makes QtCreator unhappy :(


As far as I have understood it, the whole idea of the ui.qml files are that they should not contain any javascript whatsoever. It's very difficult to develop a designer that understands what to do with javascript snippets while only working on a single file from a larger application.

You have to expose all items in your .ui.qml file via property aliases, and do all your logic code from the outside. The regular qtcreator designer doesn't have any button for exposing items as properties so you need to add them in the text editor manually. The commercial edition of qtcreator has such a button I think.

It's a bit confusing for new users. The default Quick project in QtCreator makes an example .ui.qml file with 3 buttons exposed as property aliases, and shows how to use them. It warns the user not to edit these ui.qml files by hand. Still, .ui.qml files are mostly useless if you don't create any property aliases, which you have to do by typing them into the text editor.

Maybe you could try something like this (haven't tested it myself):

Form.ui.qml
Item {
   property alias listView: theListView

   ListView {
      id: theListView
   }
}

Delegate.ui.qml
Item {
   property alias ma: mouseArea
   MouseArea {
      id: mouseArea
      anchors.fill: parent
  }
}

main.qml
Item {
   Form {
      listView.delegate: Delegate {
         ... javascript and bindings here.. .
      }
   }
}



_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to