[Qt-qml] QML Picture slideshow with QAbstractItemModel

vineeth nvineeth at gmail.com
Sun May 29 08:43:42 CEST 2011


Sorry I initially misunderstood your post.
model does not have property count, so I think you can use,
ListView.count<http://doc.qt.nokia.com/latest/qml-listview.html#count-prop>property
: slideshowScope.count
instead of model.count should do the trick,

On Sun, May 29, 2011 at 12:05 PM, vineeth <nvineeth at gmail.com> wrote:

> Hi,
>   You can find the example of using a qabstractlistmodel here :
> http://doc.trolltech.com/4.7.1/declarative-modelviews-abstractitemmodel.html
>   You can access the imagePath as model.imagePath, i.e in Image element,
> source:model.imagePath should set the path.
> HTH,
> --vineeth
>
>
>
> On Fri, May 27, 2011 at 9:33 PM, Kevin Trope <ktrope at awox.com> wrote:
>
>>  Hello,
>>
>>
>>
>> I’m currently trying to write a picture slideshow in QML, where the URLs
>> for the images are stored in a QAbstractListModel (with role “imagePath”).
>>
>>
>>
>> My approach is to have an Image item and to set the ‘source’ property of
>> this Image to a new value when displaying the next, or previous, picture.
>>
>> But I cannot figure out how to access the data model from a QML item, to
>> check that my index is valid and to retrieve the “imagePath” value.
>>
>>
>>
>>
>>
>> Sample from my code:
>>
>>
>>
>> FocusScope {
>>
>>     id: slideshowScope
>>
>>     focus: true
>>
>>
>>
>>     property int currentIndex
>>
>>     property variant model
>>
>>
>>
>>     signal exitSlideshow()
>>
>>     signal playNext()
>>
>>     signal playPrevious()
>>
>>
>>
>>     function playImage(newModel, index) {
>>
>>         model = newModel;
>>
>>         console.log("playImage");
>>
>>         if ((index >= 0) && (index < model.count)) {
>>
>>             slideshowScope.focus = true;
>>
>>             slideshowScope.visible = true;
>>
>>             imageDisplay.source = model[index].imagePath;
>>
>>             currentIndex = index;
>>
>>         }
>>
>>         else {
>>
>>             exitSlideshow();
>>
>>         }
>>
>>     }
>>
>>
>>
>>     Image {
>>
>>         id: imageDisplay
>>
>>         width: parent.width; height: parent.height
>>
>>         fillMode: Image.PreserveAspectFit
>>
>>     }
>>
>>
>>
>>     Timer {
>>
>>         id: slideshowTimer
>>
>>         interval: 5000; running: slideshowScope.visible;
>>
>>         onTriggered: { playNext(); }
>>
>>     }
>>
>>
>>
>>     onPlayNext: {
>>
>>         slideshowScope.playImage(model,currentIndex+1);
>>
>>     }
>>
>>
>>
>>     onPlayPrevious: {
>>
>>         slideshowScope.playImage(model,currentIndex-1);
>>
>>     }
>>
>> }
>>
>>
>>
>>
>>
>> The model is set in another window, where a ListView has the model
>> instantiated.
>>
>> Model.count is undefined here.
>>
>>
>>
>> Can someone give me a hand?
>>
>>
>>
>>
>>
>> Cheers,
>>
>> Kevin
>>
>>
>>
>>
>> __________ Information from ESET NOD32 Antivirus, version of virus
>> signature database 6158 (20110527) __________
>>
>> The message was checked by ESET NOD32 Antivirus.
>>
>> http://www.eset.com
>>
>> _______________________________________________
>> Qt-qml mailing list
>> Qt-qml at qt.nokia.com
>> http://lists.qt.nokia.com/mailman/listinfo/qt-qml
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt.nokia.com/pipermail/qt-qml/attachments/20110529/5c65cde1/attachment.html 


More information about the Qt-qml mailing list