Я довольно новичок в QT, и мне нужно создать компонент QML для просмотра веб-страниц с возможностью отслеживания кликов по некоторым ссылкам.Я создал класс MyWebView, унаследованный от QWebView
mywebview.h
#ifndef MYWEBVIEW_H
#define MYWEBVIEW_H
#include <QApplication>
#include <QWebFrame>
#include <QWebPage>
#include <QWebView>
#include <QUrl>
#include <QJsonDocument>
#include <QJsonObject>
#include <QObject>
#include <QProcess>
class MyWebView: public QWebView {
Q_OBJECT
public:
explicit MyWebView();
public slots:
void onJavaScriptWindowObjectCleared();
void trackOpen(QString metadata);
void trackTurn(QString metadata);
mywebview.cpp
#include "mywebview.h"
MyWebView::MyWebView(){
connect(this->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()),
this, SLOT(onJavaScriptWindowObjectCleared()));
qInfo() << "MyWebView Created";
}
void MyWebView::onJavaScriptWindowObjectCleared(){
this->page()->mainFrame()->evaluateJavaScript("console.log('MyWebView init!')");
}
void MyWebView::trackOpen(QString metadata){
qWarning() << "Open";
}
void MyWebView::trackTurn(QString metadata) {
qWarning() << "Turn";
}
Основная программа, использующая этот компонент: main.cpp
#include "mywebview.h"
#include <QtQuick/QQuickView>
#include <QApplication>
#include <QtQuick/QQuickItem>
#include <QQmlApplicationEngine>
#include <QtWebView/QtWebView>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
qmlRegisterType<MyWebView>("MyWebView", 1, 0, "MyWebView");
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/app.qml")));
return app.exec();
}
app.qml
import MyWebView 1.0
import QtQuick 2.0
import QtWebKit 3.0
import QtQuick.Controls 1.4
import QtQuick.Window 2.0
ApplicationWindow {
id: window
visible: true
title: "Window"
width: 640
height: 480
MyWebView {
id: webview
url: "http://127.0.0.1"
}
}
Итак, при запуске этого приложения я вижу только чистое окно и теперь содержимое внутри него.Исследование журналов локального веб-сервера (127.0.0.1) Я обнаружил, что программа делает запросы к веб-серверу.Как сделать мой компонент видимым?Заранее спасибо