I just re-read this. There is no way you can access one of these items 
directly by using the id. That's because there can be any amount of them 
in the ListView. So which height do you want to get? That's an 
impossible question.

What you can do is to iterate over the children attribute of the 
ListView. That's the only way I can see to do this.

Bo.

Den 01-03-2012 00:17, Krenar Qehaja skrev:
> Hi everyone,
>
> I cannot seem to access the child elements within a Component.
>
> I can access them through JavaScript though, if I create a function and
> call it when one of the root elements gets loaded, but not after.
>
> Below is a snippet of code which illustrates my point:
> import QtQuick 1.0
>
> Rectangle {
>      id: base
>      color: "transparent"
>      width: 500
>      height: 500
>
>      // this function will be used to get the height of 'items', it
> works fine
>      function getHeight(item1) {
>          console.log("items height using getHeigh function: "+item1.height)
>      }
>
>      // listview
>      ListView {
>          id: listView
>          width: parent.width; height: parent.height
>          spacing: 5
>          model: fruitModel
>          delegate: fruitDelegate
>          focus: true
>          Keys.onPressed: { // listen for any key
>              console.log("listView height: " + listView.height); // Try
> to get 'listView' Heigh, it works
>
>              console.log("items height: " + items.height);  // Try to
> get 'items' height, this does not work.
>                                                           // This error
> will appear in the console: Can't find variable: items
>                                                           // I should be
> able to access the items.height from here, or access fruitDelegate
> children from here
>                                                           // or try
> with console.log("items height: " + getHeight(items));
>          }
>      }
>
>      ListModel { // Some list
>          id: fruitModel
>          ListElement {
>              name: "Apple"
>              cost: 2.45
>          }
>          ListElement {
>              name: "Orange"
>              cost: 3.25
>          }
>      }
>
>      Component { // Delegate
>            id: fruitDelegate
>            Row {
>                id: items
>                height: 15
>                spacing: 10
>                Text { text: name }
>                Text { text: '$' + cost }
>                Component.onCompleted: {
>                    getHeight(items); // I can access the height property
> of 'items' when I pass the 'items' id to the getHeight function
>                }
>            }
>      }
> }
>
> When Component loads, it calls getHeight function and it works just
> fine. But when you press any key, you'll see an error complaining
> about items.height.
>
> So, I don't know if this is a bug or it was meant that way but I really
> do need to access those child elements.
>
> Cheers,
> Krenar
>
>
> _______________________________________________
> Qt-qml mailing list
> Qt-qml@qt.nokia.com
> http://lists.qt.nokia.com/mailman/listinfo/qt-qml


Bo Thorsen,
Fionia Software.

-- 

Expert Qt and C++ developer for hire
Contact me if you need expert Qt help
http://www.fioniasoftware.dk
_______________________________________________
Qt-qml mailing list
Qt-qml@qt.nokia.com
http://lists.qt.nokia.com/mailman/listinfo/qt-qml

Reply via email to