矩形作为 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.qml 和 MainForm.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
不能直接使用 Rectangle 或 Item 作为根元素,而是需要像 Window 或 ApplicationWindow 这样的任何窗口. 因此,要使其适用于 Rectangle,请使用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();
它解决了我的问题。
【讨论】:
以上是关于矩形作为 QML 中的根元素的主要内容,如果未能解决你的问题,请参考以下文章