Russian Qt Forum

Qt => Qt Quick => Тема начата: meego_man от Февраль 24, 2011, 15:19



Название: QML ListView + Mouse [РЕШЕНО]
Отправлено: meego_man от Февраль 24, 2011, 15:19
всем доброго времени суток. У меня возникла проблема (или вопрос). Использую ListView в своем проекте для отображения данных. Причем необходимо чтобы текущий элемент подсвечивался. С помощью клавиатуры текущий элемент изменяется, а вот при щелчках мыши нет (неважно на каком элементе щелкнул). Пробовал примеры из Declarative, та же ситуация. Может кто сталкивался и уже решил такую проблему? заранее спасибо


Название: Re: QML ListView + Mouse [РЕШЕНО]
Отправлено: meego_man от Февраль 24, 2011, 16:18
Решил путем добавления MouseArea в ListView и определения действия на клик
Код:
onClicked: {myListsView.currentIndex = myListsView.indexAt (mouseX, mouseY)


Название: Re: QML ListView + Mouse [РЕШЕНО]
Отправлено: meego_man от Февраль 25, 2011, 18:17
Предыдущий вариан работал не лучшим образом. Новый лучше. Добавляем MouseArea в делегат пунктов списка и пишем нечто вроде:
Код:
MouseArea {
   anchors.fill: parent;
   onPressed: {
     myListView.currentIndex = index;
   }
}
теперь все работает правильно :) Заголовки (если есть) пропускаются


Название: Re: QML ListView + Mouse [РЕШЕНО]
Отправлено: BlackSoul от Май 18, 2012, 13:37
В первом варианте не будет работать в случае, если несколько элементов скрыто сверху( т.е. список прокручен ).

Второй вариант работает отлично. Спасибо.