从C++访问QML WebView

我有一个带有webview的qml文件。 我在C++中获得对该对象的引用,但是是QObject * 我可以将它转换为类似于QWebView的东西,从中我可以获得QWebPage对象,等等? qobject_cast <>如果我尝试QWebView,则返回NULL。 它与铸造到QQuickItem,但这并没有真正帮助我很多。从C++访问QML WebView

谢谢

回答:

你不能。 QML WebView元素没有公共C++ API。

您有两种方法来解决此问题:

  1. 使用私有API。首先,这种添加到.pro文件:

QT += quick quick-private webkit-private

然后包括私有头:

现在,您可以访问的WebView,只要你得到一个指向它(例如,通过使用QObject :: findChildren或通过将QObject *从QML传递给C++。为简单起见,我简单地假设WebView是根对象):

QQuickWebView * webView = dynamic_cast<QQuickWebView*>(viewer.rootObject()); 

qDebug() << webView->url();

  1. 使用通用的QObject API来访问的WebView属性:

    的QObject * web视图= viewer.rootObject(); qDebug()< < webView-> property(“url”);

以上是 从C++访问QML WebView 的全部内容, 来源链接: utcz.com/qa/262889.html

回到顶部