Здравствуйте, гость ( Вход | Регистрация )
|
Obey-Kun |
31.1.2011, 4:19
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 96 Регистрация: 24.3.2010 Пользователь №: 1556 Спасибо сказали: 3 раз(а) Репутация: 0
|
Здравствуйте. Проблема такая. У меня в одном виджете есть ручной скроллинг. Зажали правую кнопку → тащим. Оно прокручивается. Причём когда курсор достигает края экрана, он перепрыгивает на противоположную его (экрана) сторону — как в Okular.
Теперь хочу реализовать прокрутку с зажатым пробелом. То есть так: зажали пробел → двигаем курсором. Проблема в том, что если мы зажимаем на виджете кнопку мыши и водим курсором, то он ловит все события с неё — даже если она выйдет за края окна. Как можно заставить его делать так же в случае с пробелом? Кто-нибудь такое реализовывал? upd: вот только что нашёл по теме Link (правда, у него там ничего и не получилось, вроде). Сообщение отредактировал Obey-Kun - 31.1.2011, 4:26 |
|
|
|
![]() |
|
Алексей1153 |
31.1.2011, 13:35
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Цитата(Алексей1153 @ 31.1.2011, 12:43) Link void QWidget::grabMouse () Grabs the mouse input. This widget receives all mouse events until releaseMouse() is called; other widgets get no mouse events at all да, я помню |
|
|
|
Obey-Kun Перехватить все события мыши 31.1.2011, 4:19
Алексей1153 >>Как можно заставить его делать так же в сл... 31.1.2011, 10:43
igor_bogomolov Цитата(Алексей1153 @ 31.1.2011, 10:43) ко... 31.1.2011, 10:48
Алексей1153 igor_bogomolov, а что именно должно быть не просто... 31.1.2011, 11:07
igor_bogomolov Цитата(Алексей1153 @ 31.1.2011, 11:07) ig... 31.1.2011, 11:20
Алексей1153 igor_bogomolov, при отпускании должна вызваться ke... 31.1.2011, 11:23
igor_bogomolov ты опять меня не понял. keyReleaseEvent будет прих... 31.1.2011, 11:25
Алексей1153 как так
щас проверю 31.1.2011, 11:27
igor_bogomolov ну ё моё, ну Алексей, ты что? События нажатия кно... 31.1.2011, 11:33
Алексей1153 оть
#include <QtDebug>
void CMy:... 31.1.2011, 11:38
igor_bogomolov Цитата(Алексей1153 @ 31.1.2011, 11:38) мы... 31.1.2011, 11:39
Алексей1153 ну неважно - способ я только что нашёл и проверил. 31.1.2011, 11:40
igor_bogomolov Цитата(Алексей1153 @ 31.1.2011, 11:38) e-... 31.1.2011, 11:45
Алексей1153 ага
void CMy::mousePressEvent(QMouseE... 31.1.2011, 11:56
igor_bogomolov Цитата(Алексей1153 @ 31.1.2011, 11:56) аг... 31.1.2011, 12:00
Алексей1153 да ну, всё приходит. Я ж не выводил их
void CMy... 31.1.2011, 12:10
igor_bogomolov Алексей1153, мышкой где водишь, над формой? Прилож... 31.1.2011, 12:22
Алексей1153 да, над формой. Я же не грабил мышь. Пробовал в ра... 31.1.2011, 12:52
igor_bogomolov Цитата(Алексей1153 @ 31.1.2011, 12:52) да... 31.1.2011, 13:00
igor_bogomolov Цитата(Алексей1153 @ 31.1.2011, 13:35) да... 31.1.2011, 13:40
Алексей1153 вот по ТЗ ТС (каламбур прям)
даже таймер не понад... 31.1.2011, 14:30
Obey-Kun grabMouse() пробовал. Почему-то после этого виджет... 31.1.2011, 14:30
Алексей1153 Obey-Kun, я подправил пост - там аттач смотри 31.1.2011, 14:31
Obey-Kun Ок. Сейчас в метро буду ехать — посмотрю . 31.1.2011, 14:49
Алексей1153 Obey-Kun, только вагоны не двигай ))) 31.1.2011, 14:55
igor_bogomolov Алексей1153, понял почему у меня не получалось. Са... 31.1.2011, 14:55
Алексей1153 igor_bogomolov, я в винде использовал SetCapture()... 31.1.2011, 14:57
Obey-Kun А! Понял, почему не работало! Я делал grab... 31.1.2011, 17:59![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 22:12 |