Привет!
Нужна помощь по "взаимодействию" QWebView/QWebPage - никак не получается понять, хто кому родитель и кто за что отвечает.
Изначально задача - расшарить загруженный контент между двумя вьюхами (без перезагрузки).
Вроде, можно одной вью установить QWebPage другой, в который уже загружено содержимое.
%QTDIR%/examples/webkit/previewer/previewer.cpp:
void Previewer::on_previewButton_clicked()
{
// Update the contents in web viewer
QString text = plainTextEdit->toPlainText();
webView->setHtml(text, baseUrl);
//-- added for test:
QWidget *pTestWidget = new QWidget( 0 );
pTestWidget->setAttribute( Qt::WA_DeleteOnClose );
QWebView *pWebView = new QWebView( pTestWidget ); //-- will be deleted with pTestWidget
pWebView->setPage( webView->page() );
//-- The parent QObject of the provided page remains the owner of the object.
//-- If the current document is a child of the web view, it will be deleted.
//-- (c) QAss
//-- As i've understood, now "original" QWebPage* of pWebView is deleted,
//-- but parent of webView->page() is not changed (perhaps, it's Previewer::webView)
pTestWidget->show();
}
Но при таком подходе "первоначальная" вьюха становится "второстепенной" - т.е. активное юай-взаимодействие (со своевременной реакцей на событя ввода, изменение курсора над ссылками и т.п.) доступно тока для pWebView, но не для Previewer::webView (выглядит это все
примерно так [00:00:40, 2Mb]).
В принципе, поведение вполне логично и мне подходит. Вопрос только вот:
Как при закрытии pTestWidget (читай - после удаления "второй" QWebView) вернуть "адекватность" Previewer::webView ("первоначальной")?