Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: Ubuntu_linux от Июнь 27, 2012, 11:33



Название: QWebView и scrollTo
Отправлено: Ubuntu_linux от Июнь 27, 2012, 11:33
Как узнать позицию "у" куда надо проскролить, когда юзер кликает на силочку и идет запрос перейти к блоку №111 iak.html#111 ?


Название: Re: QWebView и scrollTo
Отправлено: Ubuntu_linux от Июнь 28, 2012, 12:40
Хелп!


Название: Re: QWebView и scrollTo
Отправлено: _OLEGator_ от Июнь 28, 2012, 12:47
Возможно так:

Код
C++ (Qt)
QWebElement QWebFrame::findFirstElement ( const QString & selectorQuery ) const
QRect QWebElement::geometry () const


Название: Re: QWebView и scrollTo
Отправлено: Ubuntu_linux от Июнь 30, 2012, 13:26
Искать елемент и потом узнавать позицию, хм, интересно...

Просто я веду до того, что у вебкит есть сигнал void QWebFrame::scrollToAnchor ( const QString & anchor ) но у меня не скролитца, почему то, может я неправильно указываю anchor, как надо?


Название: Re: QWebView и scrollTo
Отправлено: _OLEGator_ от Июнь 30, 2012, 14:43
Скорее всего неправильное имя ссылки в передаваемом параметре.
Показывай код.


Название: Re: QWebView и scrollTo
Отправлено: Ubuntu_linux от Июнь 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  проскролить...



Название: Re: QWebView и scrollTo
Отправлено: _OLEGator_ от Июнь 30, 2012, 21:33
Ты не понимаешь принципа ссылки с #.
Тебе нужно после символа # указать id реального элемента, все остальное сделает QWebView.
А сигнал не испускается, потому что элемент такой не находит.


Название: Re: QWebView и scrollTo
Отправлено: twp от Июль 02, 2012, 15:26
вообще для прокрутки внутри документа используются якоря (http://htmlbook.ru/html/a/name)


Название: Re: QWebView и scrollTo
Отправлено: Ubuntu_linux от Июль 02, 2012, 20:56
вообще для прокрутки внутри документа используются якоря (http://htmlbook.ru/html/a/name)

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

По прежнему не могу отловить сигнал что надо скролить, ничего не происходит...


Название: Re: QWebView и scrollTo
Отправлено: _OLEGator_ от Июль 02, 2012, 21:08
Выкладывай минимально компилируемый проект, глянем что там за проблема...


Название: Re: QWebView и scrollTo
Отправлено: Ubuntu_linux от Июль 02, 2012, 21:15
Выкладывай минимально компилируемый проект, глянем что там за проблема...

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