Rectangle作为QML中的根元素

时间:2015-09-04 07:07:25

标签: qt qml qtquick2

我使用Qt 5.5.0 MSVC 2013,32bit 我想创建最小的QtQuick应用程序。当我选择New Project - Qt Quick Application时,我得到了包含2个QML文件的项目: main.qml MainForm.ui.qml 。由于我不需要它们,我删除第二个并粘贴到 main.qml

Import QtQuick 2.4

Rectangle{
    id: root
    visible: true
    color: "gray"
    width: 400
    height: 800
}

但是当我运行项目时我什么也没得到。我在任务管理器中看到应用程序,但没有应用程序窗口 问题:是否可以使用Rectangle作为根元素创建.qml文件?

1 个答案:

答案 0 :(得分:6)

在官方Qt论坛上发现了{p> Solution

  

用于创建 Qt快速应用的模板添加QQmlApplicationEngine以启动QML。但QQmlApplicationEngine不能直接使用 Rectangle Item 作为根元素,但需要任何窗口,如 Window ApplicationWindow 。   因此,要使其适用于矩形,请使用QQuickView而不是QQmlApplicationEngine

我将 main.cpp 的内容更改为

#include <QGuiApplication>
#include <QQuickView>

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

    QQuickView *view = new QQuickView;
    view->setSource(QUrl("qrc:/main.qml"));

    view->show();

    return app.exec();
}

它解决了我的问题。