我在QML中定义了一个WebEngineView,如下所示:
WebEngineView {
id: webView
objectName: "webView"
anchors.fill: parent
url: "http://www.qt.io"
}
页面显示正常。 我尝试访问底层页面,例如:
QObject* rootObject = engine->rootObjects().first();
QObject* qmlobj = rootObject->findChild<QObject *>("webView", Qt::FindChildrenRecursively);
QWebEngineView* webView = (QWebEngineView*)qmlobj;
qDebug() << "webView->page(): " << webView->page();
但是 page(( 是 NULL。 如何获取基础页面?
QWebEngineView
!= WebEngineView
!!!
WebEngineView是一个QML类型,而QWebEngineView是一个小部件类!老实说,我很惊讶您的应用程序没有崩溃。
WebEngineView 的C++实现是私有的,因此无法直接在 C++ 中访问。
您可以使用QMetaObject::invokeMethod
调用方法并使用QObject::property
访问属性,但检查 WebEngineView 文档显示,没有page
方法或属性......