Rectangle作为QML中的根元素

fat*_*fat 5 qt qml qtquick2

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

Import QtQuick 2.4

Rectangle{
    id: root
    visible: true
    color: "gray"
    width: 400
    height: 800
}
Run Code Online (Sandbox Code Playgroud)

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

fat*_*fat 7

解决方案在官方Qt论坛上找到.

用于创建Qt快速应用程序的模板添加QQmlApplicationEngine以启动QML.但是QQmlApplicationEngine不要直接使用RectangleItem作为根元素,但需要任何窗口,如WindowApplicationWindow.因此,要使其工作为矩形使用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();
}
Run Code Online (Sandbox Code Playgroud)

它解决了我的问题.