0

のビュー階層を使用しています

QMainWindow >中央ウィジェット> QVBoxLayout > QGraphicsView(800x600固定) > QGraphicsSceneから派生したクラス> QGraphicsWebView(800x600)

jQuery Mobileを利用したHTMLファイルをロードし、ページ間の水平スライドトランジションを使用すると、の値がwindow.outerWidth2400ピクセルに増加します。ただし、実際のページ幅との値はwindow.innerWidth800のままです。Webビューでは、左右に800ピクセル幅の白いバーが表示され(水平スクロールバーも2400ピクセルに拡張されます)、中央に新しいjQM「ページ」が表示されます。白いバーを右クリックしてもQtWebViewコンテキストメニューは表示されませんが、中央を右クリックすると機能します。HTML、BODY、DATA-ROLE="page"要素の正しい幅は800pxであると教えてくれた開発者ツール[1]を有効にしました。

これはFirefoxやChromeなどのブラウザで機能しているので、QtのWebビューの実装のバグか、私が見逃した設定だと思います。問題は、トランジション中にスライドイン/スライドアウトするjQMページが幅に考慮されているという事実に起因しているようです。なぜwindow.outerWidthそのような間違った値を取得するのですか?Webビューのサイズポリシーは効果がないことに注意してください。他に何を試すことができるか?


[1]「検査」コンテキストメニューオプション:

QWebSettings::globalSettings()->setAttribute(
    QWebSettings::DeveloperExtrasEnabled,
    true);
4

1 に答える 1

0

最新のWebKitを搭載したQt5にアップグレードすることで解決しました。ただし、新しい問題が発生するため、新しくリリースされた5.0.0に切り替える前に、最初に残りのWebページが機能するかどうかを試してください。

于 2013-01-20T17:01:41.797 に答える