Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: kirill от Март 18, 2009, 13:34



Название: Доступиться до scroll в QWebView
Отправлено: kirill от Март 18, 2009, 13:34
Есть объект QWebView он наследник от QWidget.
Я отрабатываю мышиные тыкания в него в eventFilter

Код:
   if ((ev->type() == QEvent::MouseButtonPress) || (ev->type() == QEvent::MouseButtonDblClick))
   {
      if (qobject_cast<QWebView *>(obj))
      {
             //мои действия
      }
    }

Но! Я не хочу обрабатывать щелчки по скролу. Скрол хочу отдать обрабатывать назад
Код:
return false;
Но как понять что клик был по скролу? Куда бы я не щелкал везде отрабатывает       
Код:
qobject_cast<QWebView *>(obj) == true

Как добраться до scrollbar-a?


Название: Re: Доступиться до scroll в QWidget
Отправлено: shadone от Март 18, 2009, 14:40
скроллбары в qwebview не являются теми же самыми скроллбарами как в остальных виджетах, поэтому доступ к ним пока получить не получится (хотя возможно есть какой-нибудь "хак", но я не в курсе). в 4.6 должен быть api для этого.


Название: Re: Доступиться до scroll в QWebView
Отправлено: kirill от Март 19, 2009, 06:59
Печально.
Придется химичить с размерами.


Название: Re: Доступиться до scroll в QWidget
Отправлено: blood_shadow от Февраль 22, 2011, 12:50
скроллбары в qwebview не являются теми же самыми скроллбарами как в остальных виджетах, поэтому доступ к ним пока получить не получится (хотя возможно есть какой-нибудь "хак", но я не в курсе). в 4.6 должен быть api для этого.
народ так в Qt 4.7.0 так и не появился способ получить указатель на скроллбары? необходимо обработать в событиях фокус именно на скроллбаре который лежит в qwebview


Название: Re: Доступиться до scroll в QWebView
Отправлено: dd от Февраль 23, 2011, 03:40
Не проверял, но навскидку:
а что вернет вызов:

Код:
QWebView::findChildren<QScrollBar*>()

?


Название: Re: Доступиться до scroll в QWidget
Отправлено: shadone от Февраль 23, 2011, 14:10
скроллбары в qwebview не являются теми же самыми скроллбарами как в остальных виджетах, поэтому доступ к ним пока получить не получится (хотя возможно есть какой-нибудь "хак", но я не в курсе). в 4.6 должен быть api для этого.
народ так в Qt 4.7.0 так и не появился способ получить указатель на скроллбары? необходимо обработать в событиях фокус именно на скроллбаре который лежит в qwebview
подобный api скорее всего никогда не появится т.к. scrollbar в QWebView не является обычным QScrollBar а рисуется самим движком webkit (по простой причине - javascript должен имет полный доступ к скроллбарам и иметь возможность изменить их вид и поведение).