У меня есть файл qml с веб-просмотром в нем.
Я получаю ссылку на этот объект в C ++, но QObject *
Могу ли я привести его к чему-то похожему на QWebView, из которого я могу получить объект QWebPage и так?
qobject_cast<> возвращает NULL, если я попробую QWebView.
Он работает с приведением к QQuickItem, но это не очень мне помогает.
Спасибо
Ты не можешь Элемент QML WebView не имеет общедоступного API C ++. У вас есть два способа обойти это:
QT += quick quick-private webkit-private
Затем включите частные заголовки:
#include <private/qquickwebview_p.h>
Теперь вы можете получить доступ к WebView, если вы получите указатель на него (например, с помощью QObject::findChildren
или передавая QObject*
из QML в C ++. Здесь я просто предполагаю, что WebView является корневым объектом для простоты):
QQuickWebView * webView = dynamic_cast<QQuickWebView*>(viewer.rootObject());
qDebug() << webView->url();
QObject
API для доступа к свойствам WebView:QObject * webView = viewer.rootObject();
qDebug() << webView->property("url");
Других решений пока нет …