[英]Qt : addToJavaScriptWindowObject and switch QWebView content
我正在使用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
不適用於該頁面。 我必須創建一個新的webview才能使其正常工作。 我的問題是在html頁面之間切換的一種干凈方法,並使其在每個新頁面上都可以與addToJavaScriptWindowObject
方法一起使用嗎?
如果要使方法addToJavaScriptWindowObject
,則必須將頁面連接到這樣的插槽。 像這樣的東西:
bool myBridge::newView( QString page )
{
_view->close();
_view = new WebView;
QObject::connect(_view, SIGNAL(mouseMoveEvent(QMouseEvent*)), _mediaPlayer, SLOT(stop()));
QObject::connect( _view->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(addObject()));
_view->load(QUrl(path));
_view->showFullScreen();
}
void myBridge::addObject()
{
frame->addToJavaScriptWindowObject( QString("bridge"), this );
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.