[Closed("Solved")]QQuickView Object Property



  • When i am creating a QObject pointer which points at the rootObject of a QDeclarativeView and i try to get a property value from QML with the function property(), it works, but when i am using a QQuickView instead of a QDeclarativeView, then i get a read access violation.

    QDeclarativeView:
    @QObject object = (QObject)ui->declarativeView->rootObject();
    ui->declarativeView->setSource(QUrl("qrc:/qml/main.qml"));
    qDebug(object->property("imageBorderColor"));@
    Output:
    _QVariant(QColor, QColor(ARGB 1, 0, 0, 0) ) _

    QQuickView:
    @QQuickView view = new QQuickView();
    view->setSource(QUrl("qrc:/qml/main.qml"));
    object = (QObject
    )view->rootObject();
    context = view->rootContext();
    container = QWidget::createWindowContainer(view, this);
    container->setGeometry(0, 0, 1440, 810);
    container->show();
    qDebug(object->property("imageBorderColor"));@

    main.qml in QDeclarativeView project
    @import QtQuick 1.1

    Rectangle {
    id: mainFrame
    property color imageBorderColor: "black"
    ...
    }@

    main.qml in QQuickView project:
    @import QtQuick 2.0
    import QtQuick.Controls 1.0
    import QtQuick.Window 2.0

    Rectangle {
    id: mainFrame
    property color imageBorderColor: "black"
    ...
    }@

    Is there a way to solve this or any other way to access QML properties from Cpp using a QQuickView? Oh and i also tried:
    @QDeclarativeProperty::write(object, "imageBorderColor", "red"); @

    -- Update --

    It looks like QQuickView did not provide a rootObject. How is that possible?

    -- Update --

    Very strange, i was searching for a solution and i couldn't find one, but it worked fine after restarting Qt..


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.