Я использую QWebView
для отображения некоторого моего html-контента. Я использую несколько html-страниц, и я должен переключаться между ними и применять к ним метод addJavaScriptWindowObject
для загрузки моего объекта C++. На данный момент я использую эту функцию для загрузки новой html-страницы:
Q_INVOKABLE bool myBridge::newView(QString page)
{
QString path("file:///C:/wamp/www/WLC_Borne/");
path += page;
_view->close();
_view = new WebView;
QObject::connect(_view, SIGNAL(mouseMoveEvent(QMouseEvent*)), _mediaPlayer, SLOT(stop()));
_view->page()->mainFrame()->addToJavaScriptWindowObject("bridge", this);
_view->load(QUrl(path));
_view->showFullScreen();
return (true);
}
Проблема в том, что я всегда выделяю новый QWebView
, и это добавляет около 5ko к использованию памяти процесса для каждого нового.
Причина, по которой я создаю новый QWebView
, заключается в том, что я делаю только:
_view->page()->mainFrame()->addToJavaScriptWindowObject("bridge", this);
_view->load(QUrl(path));
_view->showFullScreen();
addToJavaScriptWindowObject
не применяется на странице. Мне нужно сделать новый веб-просмотр, чтобы он работал. Мой вопрос был в том, что это чистый способ переключения между html-страницами и заставить его работать с методом addToJavaScriptWindowObject
на каждой новой странице?