Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: kibsoft от Март 29, 2010, 23:08



Название: QWebView скроллбар. Проблемы с scrollBarMaximum.
Отправлено: kibsoft от Март 29, 2010, 23:08
Код:
webview->page()->mainFrame()->setScrollBarValue(Qt::Vertical,
                                                      webview->page()->mainFrame()->scrollBarMaximum(Qt::Vertical));
Есть такой код, но иногда при добавлении текст в webview через:
webview->setHtml(webview->page()->mainFrame()->toHtml()
                       +какой-то html код");
сколлбар не опускается, т.е. scrollBarMaximum=0. (выявил через qDebug)
Да, и бывает это когда сначала добавляешь текст, а потом картинку, тогда скролл почему-то сбрасывается..


Название: Re: QWebView скроллбар. Проблемы с scrollBarMaximum.
Отправлено: sendevent от Март 30, 2010, 15:56
Код:
webview->setHtml(webview->page()->mainFrame()->toHtml() +"какой-то html код");
Цитата: QWebFrame::toHtml()
Returns the frame's content as HTML, enclosed in HTML and BODY tags.
т.е. вы пытаетесь установить кривой хтмл-док:
Код:
webview->setHtml( "<html><body>...</body></html>" + "какой-то html код" );
попробуйте добавлять через QWebElement, как-нить так:
Код:
QString strNewHtml = "some additional html";
QWebElement elDoc = webview->page()->mainFrame()->documentElement();
if( !docElement.isNull() )
{
    QWebElement elBody = elDoc.firstChild(); //-- or you can search by tagname "body"
    if( !elBody.isNull() )
    {
        elBody.appendInside( strNewHtml ); //-- just example, check the Assistant
    }
}
(не проверял на компилябельность и мож напутал имена методов. но суть должна быть понятна).


Название: Re: QWebView скроллбар. Проблемы с scrollBarMaximum.
Отправлено: kibsoft от Март 30, 2010, 21:12
sendevent, спасибо! Про кривой код как-то даже и не подумал! Просто до этого в программе был QTextBrowser, в котором был метод append, поэтому таких проблем не возникало (заменил на qwebview из-за поддержки анимации).