QtQuick in a terminal



  • Hello everyone,

    what do I need to make this QtQuick project work?
    When I try to compile it with :
    $ qmake -project
    $ qmake
    $ make
    and launch it, it prints

    module "QtQuick" version 2.0 is not installed
    import QtQuick 2.0
    ^

    I have the qml file below :

    @
    import QtQuick 2.0
    import QtQuick.Controls 1.0
    import QtQuick.Layouts 1.0

    ApplicationWindow {
    title: "Basic layouts"
    property int margin: 11
    width: mainLayout.implicitWidth + 2 * margin
    height: mainLayout.implicitHeight + 2 * margin
    minimumWidth: mainLayout.Layout.minimumWidth + 2 * margin
    minimumHeight: mainLayout.Layout.minimumHeight + 2 * margin

    ColumnLayout {
        id: mainLayout
        anchors.fill: parent
        anchors.margins: margin
        GroupBox {
            id: rowBox
            title: "Row layout"
            Layout.fillWidth: true
    
            RowLayout {
                id: rowLayout
                anchors.fill: parent
                TextField {
                    placeholderText: "This wants to grow horizontally"
                    Layout.fillWidth: true
                }
                Button {
                    text: "Button"
                }
            }
        }
    
        GroupBox {
            id: gridBox
            title: "Grid layout"
            Layout.fillWidth: true
    
            GridLayout {
                id: gridLayout
                rows: 3
                flow: GridLayout.TopToBottom
                anchors.fill: parent
    
                Label { text: "Line 1" }
                Label { text: "Line 2" }
                Label { text: "Line 3" }
    
                TextField { }
                TextField { }
                TextField { }
    
                TextArea {
                    text: "This widget spans over three rows in the GridLayout.\n"
                        + "All items in the GridLayout are implicitly positioned from top to bottom."
                    Layout.rowSpan: 3
                    Layout.fillHeight: true
                    Layout.fillWidth: true
                }
            }
        }
        TextArea {
            id: t3
            text: "This fills the whole cell"
            Layout.minimumHeight: 30
            Layout.fillHeight: true
            Layout.fillWidth: true
        }
    }
    

    }
    @

    and the main.cpp file below :
    @
    #include <QApplication>
    #include <QDeclarativeView>
    #include <QDeclarativeContext>

    int main(int argc, char **argv)
    {
    QApplication app(argc, argv);

    QDeclarativeView *view = new QDeclarativeView();
    view->setSource(QUrl::fromLocalFile("./main.qml"));
    view->show();

    return app.exec();
    }
    @


  • Moderators

    You are mixing QtQuick1 and QtQuick2, which is not permitted. You need to use QQuickView instead of QDeclarativeView, same for the context.



  • Okay, thanks for your quick answer :) , but now I have a so many errors, I can't even post it here... I did this :
    @
    #include <QApplication>
    #include <QQuickView>
    #include <Qurl>

    int main(int argc, char **argv)
    {
    QApplication app(argc, argv);

    QQuickView view;
    view.setSource(QUrl("./main.qml"));
    view.show();

    return app.exec();
    }
    @

    @
    ######################################################################

    Automatically generated by qmake (3.0) dim. juil. 28 14:25:38 2013

    ######################################################################

    TEMPLATE = app
    TARGET = TestQtQuick
    INCLUDEPATH += .

    Input

    SOURCES += main.cpp

    QT += quick widgets
    @

    Any example code, with the associated pro please?
    It seems that all errors appear in :
    ../../../Qt5.0.1/5.0.1/gcc/include/QtGui/qopenglext.h
    What's that?



  • Use QGuiApplication with Qt5, instead of QApplication. You need "QT += quick qml gui" in your .pro.

    Cheers,
    Chris.


Log in to reply
 

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