2

ローカルの .html ページを表示するための簡単なプロジェクトを作成しました。そこでQt5.4を使用しQWebViewました。しかし、Qt5.6 に切り替えた後、Qt WebKit が廃止され、サポートされなくなったことに気付きました。そこで、Qt WebKit の機能を Qt WebEngine の機能に置き換えることにしました。

に置き換えた後、QWebViewその方法が効果がないQWebEngineView ことを調査しました。setZoomFactorそれは既知の問題ですか?どうすればこれを処理できますか?

編集: 最近、興味深いことが調査されました。setHtmlローカル .html ファイルのコンテンツを自分の .html ファイルに設定するメソッドを使用しますQWebEngineView。これらのファイルには、画像への参照も含まれています。そこで、必要な画像への相対パスとしてbaseUrlパラメータを設定しました。その場合、setZoomFactorメソッドの使用は効果がありません。

しかし、画像への相対パスをパラメーターとして設定しないと、画像は表示されませんQWebEngineViewが、ズーム機能は機能します。ここで何が間違っているのでしょうか?

4

3 に答える 3

1

Qt 5.11 で QML zoomFactor プロパティまたは C++ setZoomFactor (プライベート API) を使用して QML WebEngineView の zoomFactor を設定すると、期待どおりに動作しませんでした。QT Bug 51992のコメントから、ページの読み込み後に設定すると機能することがわかりました。

QML ソリューション:

    WebEngineView {
        // ...
        onLoadingChanged: {
            zoomFactor = 0.75
        }
    }

QWebEngineView ソリューション:loadFinishedシグナルに接続し、各ページの読み込み後に zoomFactor を設定します。

main.cpp (engine.load 呼び出し後):

QWebEngineView *webView;  // = ...
QObject::connect(webView, &QWebEngineView::loadFinished,
                 [=](bool arg) {
    webView->setZoomFactor(zoomFactor);
});
于 2018-08-16T22:52:28.157 に答える
1

このバージョンの Qt の既知のバグのようです。ここで自分で確認できます: Qt Bug 51992

基本的には、次のように言われています。

これは、ズーム倍率の設定に使用する Chromium API が原因で現在発生している既知の不具合のようです。

また:

Chromium は、ズーム ファクターを最大 5.0 に制限します。それよりも大きい数値の呼び出しは効果がありません。

それがあなたを助けることを願っています。

于 2016-04-11T06:58:13.633 に答える