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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QWebView и scrollTo  (Прочитано 6988 раз)
Ubuntu_linux
Гость
« : Июнь 27, 2012, 11:33 »

Как узнать позицию "у" куда надо проскролить, когда юзер кликает на силочку и идет запрос перейти к блоку №111 iak.html#111 ?
Записан
Ubuntu_linux
Гость
« Ответ #1 : Июнь 28, 2012, 12:40 »

Хелп!
Записан
_OLEGator_
Гость
« Ответ #2 : Июнь 28, 2012, 12:47 »

Возможно так:

Код
C++ (Qt)
QWebElement QWebFrame::findFirstElement ( const QString & selectorQuery ) const
QRect QWebElement::geometry () const
Записан
Ubuntu_linux
Гость
« Ответ #3 : Июнь 30, 2012, 13:26 »

Искать елемент и потом узнавать позицию, хм, интересно...

Просто я веду до того, что у вебкит есть сигнал void QWebFrame::scrollToAnchor ( const QString & anchor ) но у меня не скролитца, почему то, может я неправильно указываю anchor, как надо?
Записан
_OLEGator_
Гость
« Ответ #4 : Июнь 30, 2012, 14:43 »

Скорее всего неправильное имя ссылки в передаваемом параметре.
Показывай код.
Записан
Ubuntu_linux
Гость
« Ответ #5 : Июнь 30, 2012, 16:47 »

Скорее всего неправильное имя ссылки в передаваемом параметре.
Показывай код.

Код
<div class="pagesbar" id="toppagesbar">
 
 
       <a href="../sinodal/iak.html#1" class="bar1">1</a>&nbsp;
 
       <a href="../sinodal/iak.html#2" class="bar2">2</a>&nbsp;
 
       <a href="../sinodal/iak.html#3" class="bar3">3</a>&nbsp;
 
       <a href="../sinodal/iak.html#4" class="bar4">4</a>&nbsp;
 
       <a href="../sinodal/iak.html#5" class="bar5">5</a>&nbsp;
 
 
</div>

Код
C++ (Qt)
   Q_INVOKABLE void scrollToAnchor(QString anchor){qDebug()<<"#WebView, scrollRequested"; /*webView->page()->mainFrame()->scrollToAnchor(anchor);*/ webView->page()->mainFrame()->setScrollPosition(QPoint(0,300));}//evaluateJavaScript("window.scrollTo(0,10000);")
 

Но  сигнал  
void QWebPage::scrollRequested ( int dx, int dy, const QRect & rectToScroll ) [signal]

 не испускается ! Как так?

П.С. У меня страничка помесчена в QML Flickable Element и я хочу узнать "y"  куда скролить, а потом в qml  проскролить...

« Последнее редактирование: Июнь 30, 2012, 16:51 от Ubuntu_linux » Записан
_OLEGator_
Гость
« Ответ #6 : Июнь 30, 2012, 21:33 »

Ты не понимаешь принципа ссылки с #.
Тебе нужно после символа # указать id реального элемента, все остальное сделает QWebView.
А сигнал не испускается, потому что элемент такой не находит.
Записан
twp
Гость
« Ответ #7 : Июль 02, 2012, 15:26 »

вообще для прокрутки внутри документа используются якоря
Записан
Ubuntu_linux
Гость
« Ответ #8 : Июль 02, 2012, 20:56 »

вообще для прокрутки внутри документа используются якоря

Походу
Цитировать
В XHTML и HTML5 вместо name для определения якоря требуется указывать атрибут id.

По прежнему не могу отловить сигнал что надо скролить, ничего не происходит...
Записан
_OLEGator_
Гость
« Ответ #9 : Июль 02, 2012, 21:08 »

Выкладывай минимально компилируемый проект, глянем что там за проблема...
Записан
Ubuntu_linux
Гость
« Ответ #10 : Июль 02, 2012, 21:15 »

Выкладывай минимально компилируемый проект, глянем что там за проблема...

Собрал тестовый проект (на виджетах, без qml) -> в этом проекте все скролится и страничка переходит в нужную область и сигнал испускается. Значит, проблема в том, что я поместил  браузер в qml! Он, походу, там отображаться на всю область и нет куда скролить.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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