Get Repeater’s child
Hello folks, I’m just wondering how I can change the visual element which has been created by the Repeater or other “Positioner” elements. I have the following QML:
- Repeater{
- model: buttunGroup.buttonList
- RadioButton{
- title: buttonText
- }
- }
After it has been created I want to change some property of one of my “RadioButton” elements but I find no way to accomplish that. I’ve found the children property but have no clue how to dissect a list I retrieved from that property.
Is there a way to do that?
11 replies
you can, actually I figured it out) i found the following string in Repeater description:
Items instantiated by the Repeater are inserted, in order, as children of the Repeater’s parent
So you can access the children like this:
- import Qt 4.7
- Rectangle {
- id: screen
- width: 1024
- height: 600
- Row{
- id:container
- Repeater{
- model:3
- delegate:Rectangle{
- width:100
- height:100
- color:"red"
- }
- }
- }
- Component.onCompleted:container.children[1].color="black"
- }
it works!
Kxyu, it is exactly what I’ve searched for. Thank you for the solution.
Though I don’t understand why the parent item doesn’t keep its children amount. Maybe it should? It seems a bit awkward to retrieve children from a Row and get children number from a Repeater :)
Nevertheless, the question is answered.
Well it keeps, as children is a List, and List does. But as far as I understand in QML it works like javascript array, so you can use it’s length property. I don’t know why, but it gives amount+1, still you can use it
Interesting property it should be documented I believe. Because I didn’t find any mentions about it neither in documentation nor in the IntelliSense in QtCreator.
IntelliSense needs some updates. It’s not mentioned in documentation probably because it isn’t related to QML. Just as the Math.functions aren’t mentioned. Basically, javascript works in QML.
well, that’s correct, but I think it would be better, if list in QML had all QList members and worked the same way, not like javascript array
You must log in to post a reply. Not a member yet? Register here!



