2015-07-02 2 views
0

Я начинаю с QML в Qt Creator, и мне нравится слишком много всего, что я читал об этом, но теперь я нашел осложнение.QML QWidget container

См следующий код:

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 мой QWidgetQMainWindow на мое приложение, но этот код не показывать мой QQuickView контейнер. Очевидно, что у родителя, у которого есть вопрос, есть setCentralWidget, подписанный в методе main(), и я уже отлично использую эту концепцию для виджетов, отличных от QML. Как я могу исправить это, чтобы показать контейнеры объектов QML?

Мои QML является лишь простой пример концепции:

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 } 
    } 
} 

Благодаря

ответ

1

Если вы используете последнюю версию Qt , QWidget :: createWindoContainer лишен. Создайте QQuickWidget вместо этого и используйте обычный QWidget.

Смежные вопросы