Russian Qt Forum
Ноябрь 22, 2024, 17:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Эмуляция жеста swipe. Инерционная прокрутка.  (Прочитано 5805 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Ноябрь 03, 2014, 23:10 »

Итак, по материалам этой темы, в которой я разговаривал сам с собой, мы выяснили, что с жестом Swipe в Qt все очень плохо. В прошлый новый год мне задарили планшет, и первое с чем я столкнулся - это баги с жестами в Qt. Прошел почти год. Что-то изменилось? Нет.

Я уже морально готов писать самодельный распознаватель жестов из QMouseEvent (события мышки на реальном Андроид-железе отлавливаются нормально).

Перед тем, как я начну хардкорить, я хотел бы узнать две вещи:

1. Возможно уже есть какие-то наработки по ручному распознаванию жестов. Дайте ссылку если таковые знаете. Интересует жест Swipe.

2. Нигде не могу найти пример инерционной прокрутки. Хочу ее прикрутить к QTableView, QTreeView, QListView. Есть ли готовые решения? Или нужно тоже хардкорить? Есть ли рабочий пример?

Записан

Собираю информацию по крупицам
http://webhamster.ru
vregess
Гость
« Ответ #1 : Ноябрь 04, 2014, 08:03 »

1. Возможно уже есть какие-то наработки по ручному распознаванию жестов. Дайте ссылку если таковые знаете. Интересует жест Swipe.
Посмотри QSwipeGesture, QPinchGesture.

2. Нигде не могу найти пример инерционной прокрутки. Хочу ее прикрутить к QTableView, QTreeView, QListView. Есть ли готовые решения? Или нужно тоже хардкорить? Есть ли рабочий пример?
Для QML есть Flickable, а для виджетов придется найти flickcharm. Вот тут есть: http://blog.qt.digia.com/blog/2008/11/15/flick-list-or-kinetic-scrolling/
Записан
twp
Гость
« Ответ #2 : Ноябрь 14, 2014, 23:45 »

2. Нигде не могу найти пример инерционной прокрутки. Хочу ее прикрутить к QTableView, QTreeView, QListView. Есть ли готовые решения? Или нужно тоже хардкорить? Есть ли рабочий пример?

В Qt5 есть класс QScroller. Юзать его достаточно легко. Чтоб прикрутить к наследнику QAbstractItemView надо
 задействовать его viewport():
Код
C++ (Qt)
QScroller::grabGesture(viewport(), QScroller::LeftMouseButtonGesture);
 
Ну еще полезно убрать скроллбар, а также установить попиксельный режим прокрутки:
Код
C++ (Qt)
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.121 секунд. Запросов: 23.