[Interest] ListView questions
Nurmi J-P
jpnurmi at theqtcompany.com
Thu Dec 4 20:56:20 CET 2014
> On 04 Dec 2014, at 20:42, Jason H <jhihn at gmx.com> wrote:
>
>
>
>> Sent: Thursday, December 04, 2014 at 2:21 PM
>> From: "Nurmi J-P" <jpnurmi at theqtcompany.com>
>> To: interest <interest at qt-project.org>
>> Cc: "Jason H" <jhihn at gmx.com>
>> Subject: Re: [Interest] ListView questions
>>
>>
>>> On 04 Dec 2014, at 20:07, Jason H <jhihn at gmx.com> wrote:
>>>
>>> So I am finding that ListView is poorly documented. It inherits Flickable, but does not otherwise have any currentIndexChanged() events, except that, it has it... somehow.
>>>
>>> I am trying to use a ListView with a delegate that has the following behavior:
>>> Unselected item delegate:
>>> - A line of text
>>> - Font is a color
>>>
>>> Selected Item delegate:
>>> - 2 lines of text (double height)
>>> - Font is a different color
>>> - Alternate background color (easy via highlight property)
>>>
>>>
>>> I can expand the delegate onCurrentIndexChanged, but there is no documentation if there is a previous item availible. And if I add a property, how do I alter the non-current item delegate?
>>>
>>> Where is the complete ListView documentation?
>>
>> It doesn't sound like you need onCurrentIndexChanged or the previous item at all. You could just create declarative bindings that change the delegate looks based on the attached ListView.isCurrentItem property.
>>
>> http://qt-project.org/doc/qt-5/qml-qtquick-listview.html#isCurrentItem-prop
>>
>> --
>> J-P Nurmi
>>
>>
>
> Thanks, that works, but I found I needed: property bool isSelected: ListView.isCurrentItem
> added to the item for the sub-elements in the delegate to know. Is that expected?
Yes, that's how attached properties work in general. A quote from the detailed description of ListView:
"ListView attaches a number of properties to the root item of the delegate, for example ListView:isCurrentItem. In the following example, the root delegate item can access this attached property directly as ListView.isCurrentItem, while the child contactInfo object must refer to this property as wrapper.ListView.isCurrentItem."
> And I still think that ListView docs don't show all the signals the ListView generates.
Property change notifies are part of the QML language:
http://qt-project.org/doc/qt-5/qtqml-syntax-signals.html#property-change-signal-handlers
PS. Please keep the discussion on the mailing list.
--
J-P Nurmi
More information about the Interest
mailing list