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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QWeb[View|Page] - contents sharing without reloading  (Прочитано 3310 раз)
sendevent
Гость
« : Ноябрь 30, 2009, 05:58 »

Привет!
Нужна помощь по "взаимодействию" 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 ("первоначальной")?

Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Декабрь 01, 2009, 08:07 »

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


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