为什么 page() 对象对于 QT WebEngineView 为空



我在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方法或属性......

最新更新