【发布时间】:2018-04-07 07:47:51
【问题描述】:
我有一个在 QWidget 中显示 QML 映射的应用程序。 Qwidget 构成了带有拆分器的水平布局的一部分,以允许地图占据大部分空间。我的 UI 结构如下图所示。
wdgtMap 是用作窗口容器的那个。如果我将文本编辑放在那里(在设计器中),文本编辑会按预期填充小部件并随着应用程序的大小调整和最大化而扩展。
如果现在在代码中,我为地图创建窗口容器,地图不会扩展到 wdgtMap 的大小。我尝试了许多不同的选择,但无济于事。
qmlMapObject = qvMap->rootObject();
// Set the context and include properties.
QQmlContext *ctxt = qvMap->rootContext();
ctxt->setContextProperty("asset_class", &clAsset);
// Set the source after defining the context.
qvMap->setSource(QUrl("qrc:/main.qml"));
// Set widget properties.
QWidget *qvMapContainer = QWidget::createWindowContainer(qvMap, ui->wdgtMap);
qvMapContainer->setMinimumSize(20,20);
qvMapContainer->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::MinimumExpanding);
在私有部分下的头文件中:
QQuickView *qvMap = new QQuickView();
QObject *qmlMapObject;
第二张图片是我最终得到的。你可以看到右上角的小地图。我希望它填充所有空间并在调整应用大小时扩展/缩小。
我们将不胜感激。
【问题讨论】:
标签: c++ qt qt5 qwidget qquickview