次のスクリーンショットのような HTML ウィンドウ (QWebview) を含む QT5.5 で簡単なプログラムを実装しています。
ここで、プログラムを 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()
しましたが、ビューは常に左側にあります。