"url"ではなく、main.qmlファイルにあるWebViewにQnetworkRequestを渡そうとしています。 webViewオブジェクトとsetproperty関数を参照してurlを渡します。しかし、正しい機能が見つからず、新しい機能を作成したり、既存のWebViewコードを修正してこれを機能させるためには、どこから起動するのかが分かりません。 .qmlファイルのWebViewにソースコードを編集する方法はありますか?もちろん、私はQTフレームワークを学んでいます。QT 5.8どのようにWebviewがリクエストを行い、どうやってそれを傍受できますか?
私はWebengineViewを試しましたが、Webviewの読み込み速度がかなり速いです。それはアプリケーションのために重要です
本当の質問は、Webviewがどのようにリクエストを行い、どうやってそれを傍受できますか?
main.qml
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtWebView 1.1
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.2
ApplicationWindow {
flags: Qt.FramelessWindowHint
visible: true
x: 600
y: 400
width: 500
height: 500
title: webView.title
WebView {
id: webView
anchors.fill: parent
objectName: "webView"
//setting this value through main.cpp
// url: "https://www.google.com"
onLoadingChanged: {
if (loadRequest.errorString)
console.error(loadRequest.errorString);
}
}
}
main.cppに
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QtWebView::initialize();
QQmlApplicationEngine engine;
//How to Pass THIS request to the webview instead of url?
QNetworkRequest request;
request.setUrl(QUrl("http://google.com"));
request.setRawHeader("Accept-Charset", "UTF-8,*;q=0.5");
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
QObject *rootObject = engine.rootObjects().first();
QObject *qmlObject = rootObject->findChild<QObject*>("webView");
//Able to set the URL for the webView:
qmlObject->setProperty("url", "https://www.google.com");
return app.exec();
}
どのようにQMLから変更されたURLの取り扱いについて '' WebView'''が変更された 'の' '' url'''プロパティ? '' 'onUrlChanged:{...}' '' –