Здравствуйте.
Пытаюсь реализовать отображение лога чата через QWebView, возникли проблемы в реализации обновления информации, т.е. проблема с добавлением новых сообщений в конец страницы.
1. Пробовал так:
builder->appendEventOld(this, event); // клас, который формирует страницу целиком, т.е. в нем формируется лог, который затем выводится
webView->setHtml(builder->getDoc(), skinDir); // тут
Проблемы: допустим в шаблоне есть javascript, который должен отрабатывать при "загрузке" и как-то менять страницу. Получается после отображения страницу нужно сохранить в builder, что бы новые ивенты добавлялись уже к этой странице, но как это сделать? QWebView рендерит в отдельном потоке, на сколько я понял, поэтому вызов
builder->saveDoc(webView->page()->mainFrame()->toHtml());
сразу после setHtml ни к чему хорошему не приводит. Пытался завязаться на сигналы loadStarted и loadFinished - не получилось.
2. пробовал так:
В builder формируется только новый код, который нужно добавить и затем вызывается что-то вроде
void addToDoc(QString add) {
webView->page()->mainFrame()->documentElement().appendInside(add);
}
Проблемы: не отрабатывает javascript, стили .css, определенные глобально (например, для body) так же не работают.
Буду рад любой помощи.