[solved] StringList as model for GridView
-
Hi,
this is my first post here and i'm realy new to Qt and Qt Quick.
So i saw the amazing flickr-demo and started to change a bit on the code.
i'm now at a position, where i got a string (the tags of an image) and have to split it up into the single tags.
this tags i want to display in a grid view.
So here is my attampt of doing so:@GridView {
id: tagGrid
anchors {
left: parent.left; leftMargin: 10
right: parent.right; rightMargin: 10
top: parent.top; topMargin: 5
bottom: parent.bottom; bottomMargin: 5
}
cellWidth: (parent.width-20)/4
cellHeight: 15
width: parent.width - 20; height: parent.height -10
model: container.photoTags.split(" ")
delegate: tagDelegate
clip: true
}@as u can see, i us the split-function to provide the data to the view.
The delegate should show a simple text-item for each of the contained strings. this works!
but i dont see the String itself and i dont know, how to refer to it!here is my delegate:
@Component {
id: tagDelegateText { color: "white"; elide: Text.ElideRight; text: "#"+ s; width: (tagContainer.width - 20) / 4 }
}@
the problme is the "text"-property. i wrote "s" for example. i know, this i wrong, but how to get the current stringlist-item?
thx for your help :D
if u got any other idee, how to get a simple grid view out of a splitted string, show it to me ;)
-
[quote author="ragesoft" date="1297331065"]
The problme is the "text"-property. i wrote "s" for example. i know, this i wrong, but how to get the current stringlist-item?
[/quote]Use "modelData"
@Text { color: "white"; elide: Text.ElideRight; text: "#"+ modelData; width: (tagContainer.width - 20) / 4 }@
http://doc.qt.nokia.com/4.7-snapshot/qdeclarativemodels.html
"Models that do not have named roles (such as the QStringList model shown below) will have the data provided via the modelData role. The modelData role is also provided for models that have only one role. In this case the modelData role contains the same data as the named role."
-
ragesoft, don't forget to mark thread as [solved]