c++ - Qml/Qt/C++ : QQuickView in a Widget, 找不到正确的位置

标签 c++ ios qt qml qquickview

我正在使用 QT5.5 实现一个简单的程序,其中包含一个 HTML 窗口 (QWebview),如下图所示:

HTML window on the right side

现在我还想为 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);

然后我将容器添加到主窗口。 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
}
}

但不知何故我无法正确布局。 HTML window on iOS 容器后面有一个空白/白色矩形,容器也不在右侧 HTML 窗口中它应该在的位置。当我在 qml 文件中更改矩形的宽度和高度时,它只会更改 webview 的大小,不会更改白色背景。

谁能告诉我,我怎样才能做对呢?我也用过 container->setParent() 但 View 总是在左边。

最佳答案

作者代码的可见性可能不够,但总的来说,在布局中以一定的对齐方式设置小部件更容易。通过这种方式,您可以命令小部件位于特定一侧,并使放置不依赖于坐标/主机小部件大小等。layout 变量假定为水平框布局或 QHBoxLayout。

// make sure that QHBoxLayout* layout = new QHBoxLayout(this);
// or set the horizontal layout somehow else
QQuickView *view = new QQuickView();
QWidget *container = QWidget::createWindowContainer(view, this);

container->serFixedWidth(200); // the layout is horizontal
                               // and we *may* want to fix the width

container->setFocusPolicy(Qt::TabFocus);
view->setSource(QUrl("qrc:///webview.qml"));
layout->addWidget(container, Qt::AlignRight); // align to the right

请注意,水平布局的其余部分应按照其中的相对位置进行填充。

关于c++ - Qml/Qt/C++ : QQuickView in a Widget, 找不到正确的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34437190/

相关文章:

iphone - 将通用应用程序作为缩放的 iPhone 应用程序运行?

c++ - 如何替换剪贴板中 QTextEdit 复制的文本?

ios - 将 MKRoute 转换为 NSData

c++ - 相同的键盘键作为两个相反操作的快捷方式

c++ - 在ubuntu14.04上启动qt

c++ - 在 C++ 代码中从另一个线程读取的性能影响

C++ 有效数字

c++ - opencv2/tracking.hpp : No such file or directory on Ubuntu 16. 04

c++ - 我如何解决 GetParent/EnumChildWindows 不对称问题?

ios - 如何使用分割模型输出张量?