1

次のスクリーンショットのような HTML ウィンドウ (QWebview) を含む QT5.5 で簡単なプログラムを実装しています。

右側の HTML ウィンドウ

ここで、プログラムを iOS 用、たとえば iPad 用にもインストールしたいと考えています。QWebview クラスがモバイル システムで利用できないことがわかったので、HTML ウィンドウを QML ファイルを含む QQuickView に変更する必要がありました (または、より良い方法はありますか?)。次のコードをオンラインで見つけました。

QQuickView *view = new QQuickView();
QWidget *container = QWidget::createWindowContainer(view, this);
container->setMinimumSize(200,400);
container->setMaximumSize(200,400);
container->setFocusPolicy(Qt::TabFocus);
view->setSource(QUrl("qrc:///webview.qml"));
layout->addWidget(container);

次に、コンテナーを mainWindow に追加しました。webview.qml:

import QtQuick 2.5
import QtWebView 1.0
Rectangle {
id: rectangle
width: 200
height: 400
WebView {
    id: webview
    url: "file:///test.html"
    anchors.fill: parent
    width: 200
    height: 400
}
}

しかし、どういうわけか、レイアウトを正しく取得できません。 iOS の HTML ウィンドウ コンテナーの後ろに空白/白い四角形があり、コンテナーは HTML ウィンドウの右側にあるべき場所にもありません。qml ファイルで長方形の幅と高さを変更すると、白い背景ではなく、webview のサイズのみが変更されます。

どうすればこれを正しく行うことができますか?私も使用container->setParent()しましたが、ビューは常に左側にあります。

4

1 に答える 1