如何运行导入QtQuick2.0和QtQuick.Controls 1.1的应用程序

时间:2014-01-23 15:07:45

标签: qt qml qt5

我是第一次创建qtquick应用程序。我使用QtCreator 3.0,Qt5.2.0和MSVC2012。 当我写下面的代码时,我收到了错误消息。我理解它的内容。但是如果可能的话,我想使用QtQuick 2.0而不是1.0。

有谁知道如何修复错误? 任何帮助,将不胜感激。提前谢谢。

示例代码

[ main.qml

import QtQuick 2.0
import QtQuick.Controls 1.1

ApplicationWindow {
    width: 360
    height: 360
    menuBar:MenuBar {
        Menu {
            title: "File"
            MenuItem { text: "Open..." }
            MenuItem { text: "Close" }
        }

        Menu {
            title: "Edit"
            MenuItem { text: "Cut" }
            MenuItem { text: "Copy" }
            MenuItem { text: "Paste" }
        }
    }
    Text {
        text: qsTr("Hello World")
        anchors.centerIn: parent
    }
    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit();
        }
    }
}

[的main.cpp

#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QtQuick2ApplicationViewer viewer;
    viewer.setMainQmlFile(QStringLiteral("qml/QtQuickAppTest/main.qml"));
    viewer.showExpanded();

    return app.exec();
}

错误消息

QQuickView only supports loading of root objects that derive from QQuickItem. 

If your example is using QML 2, (such as qmlscene) and the .qml file you 
loaded has 'import QtQuick 1.0' or 'import Qt 4.7', this error will occur. 

To load files with 'import QtQuick 1.0' or 'import Qt 4.7', use the 
QDeclarativeView class in the Qt Quick 1 module. 

1 个答案:

答案 0 :(得分:2)

您需要使用选项“Qt Quick Control 1.0”生成Qt Quick Application项目,而不是“Qt Quick 2.0”。它将生成QtQuick2ControlsApplicationViewer类,该类不使用QQuickView,而只使用QQmlComponent