QML QWidget容器

时间:2015-07-02 11:10:31

标签: c++ qt qml qt-creator qtquick2

我在Qt Creator中开始使用QML,我非常喜欢我读过的所有内容,但现在我发现了一个并发症。

请参阅以下代码:

BLCMainWidget::BLCMainWidget(QWidget *parent) : BLCBaseWidgetControler(parent) {

   QQuickView view;
   view.setSource(QUrl("qrc:///main.qml"));
   QWidget *container = QWidget::createWindowContainer(&view);

   QHBoxLayout *layout = new QHBoxLayout;
   layout->setSpacing(10);
   layout->setAlignment(Qt::AlignHCenter);
   layout->setContentsMargins(1, 1, 1, 1);
   parent->setStyleSheet("background:QColor(200,100,150);");

   layout->addWidget(container);

   parent->setLayout(layout);

}

parent申请QWidget的{​​{1}}位置,但此代码未显示我的QMainWindow容器。显然,有问题的父母有一个QQuickView签名的setCentralWidget方法,而且我已经完全将这个概念用于非QML小部件。如何解决这个问题以显示我的QML对象容器?

我的QML只是一个简单的概念示例:

main()

由于

2 个答案:

答案 0 :(得分:1)

如果您使用的是最新版本的Qt,则会删除QWidget :: createWindoContainer。改为创建一个QQuickWidget,并将其用作普通的QWidget。

答案 1 :(得分:0)

看看这个:QML C++ Integration 而这:Interact QML from C++