矩形作为 QML 中的根元素

Posted

技术标签:

【中文标题】矩形作为 QML 中的根元素【英文标题】:Rectangle as a root element in QML 【发布时间】:2015-09-04 07:07:25 【问题描述】:

我使用 Qt 5.5.0 MSVC 2013,32 位。 我想创建最小的 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

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

【问题讨论】:

回答:是的,有可能。阅读 Qt 文档并从一些基本示例开始。 我相信你会需要一个窗口。 这很有可能是重复的.. 【参考方案1】:

Solution是在官方Qt论坛上找到的。

创建Qt Quick Application的模板添加QQmlApplicationEngine来启动QML。但是QQmlApplicationEngine 不能直接使用 RectangleItem 作为根元素,而是需要像 WindowApplicationWindow 这样的任何窗口. 因此,要使其适用于 Rectangle,请使用 QQuickView 而不是 QQmlApplicationEngine

我将 ma​​in.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();

它解决了我的问题。

【讨论】:

以上是关于矩形作为 QML 中的根元素的主要内容,如果未能解决你的问题,请参考以下文章

将矩形附加和分离到 QML 中的移动矩形

QML - 控制Rectangle元素任何一侧的边框宽度和颜色

如何通过拖动来旋转 qml 矩形?

Qml 半透明模糊叠加矩形

QML:DropShadow 复制源矩形

QML滑块调整矩形