gpt4 book ai didi

c++ - QQuickView 内容未正确调整大小

转载 作者:搜寻专家 更新时间:2023-10-31 02:12:01 25 4
gpt4 key购买 nike

我正在尝试将 QMLview 嵌入到 QWidget 中。我成功地在主窗口内显示了 View ,没有任何问题,但是每当我调整它的大小时,qml View 都没有更新。

View 未正确调整大小

这是绘制 View 的代码

主窗口.cpp

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QQuickView * view = new QQuickView ();
view->setSource (QUrl ("qrc:///main//qml-map") );
view->setResizeMode (QQuickView::SizeRootObjectToView);

QWidget * container = QWidget::createWindowContainer(view, this);

setCentralWidget(container);
}

主.qml

Item {
anchors.fill: parent
visible: true

Plugin {
id: osmPlugin
name: "osm"
}

Map {
visible: true
anchors.fill: parent
plugin: osmPlugin
center: QtPositioning.coordinate(59.91, 10.75) // Oslo
zoomLevel: 10
}
}

我也尝试过使用 setLayout 函数放置容器,但没有成功。

最佳答案

我遇到了同样的问题。我发现修复它的唯一方法是处理主机小部件的 resizeEvent 并根据新大小重置根 qml 组件的 widthheight 属性.试试这个:

void MainWindow::resizeEvent(QResizeEvent* event)
{
QQuickItem* rootObject = view->rootObject();
QSize newSize = event->size();
if(rootObject) rootObject->setProperty("width",QVariant::fromValue(newSize.width()));
if(rootObject) rootObject->setProperty("height",QVariant::fromValue(newSize.height()));
}

关于c++ - QQuickView 内容未正确调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42728417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com