f4root
f4root

Reputation: 485

QML QWidget container

I'm beginning with QML in Qt Creator and I like too much everything I've read about it but now I found a complication.

See following code:

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);

}

Where parent is my QWidget on QMainWindow of my application, but this code not show my QQuickView container. Obviously the parent in question has a setCentralWidget signed in main() method and I'm already using that concept for non-QML widgets perfectly. How can I fix that to show my QML object containers?

My QML is just a simple concept example:

import QtQuick 2.1

Item {
    id: box
    width: 640
    height: 480

    Rectangle {
        id: redSquare
        width: 30; height: 30
        anchors.top: parent.top; anchors.left: parent.left; anchors.margins: 10
        color: "green"

        Text { text: "!"; font.pixelSize: 16; anchors.centerIn: parent }   
    }  
}

Thanks

Upvotes: 0

Views: 1731

Answers (2)

Teimpz
Teimpz

Reputation: 935

If you are using a recent version of Qt, QWidget::createWindoContainer is depricated. Create a QQuickWidget instead, and use it a a normal QWidget.

Upvotes: 1

Miki
Miki

Reputation: 41765

Take a look at this: QML C++ Integration and this: Interact QML from C++

Upvotes: 0

Related Questions