当您从头开始创建新的 Qt 快速项目时,您有以下选项:
Application (Qt Quick):
Application (Qt for Python) > Qt for Python - Qt Quick Application - Empty:创建包含空 Qt 快速应用程序的 Python 项目。
Other Project > Qt Quick UI Prototype:使用包含主视图的单个QML文件创建Qt Quick UI项目。可以在QML场景预览工具中查看Qt Quick 2 UI项目。您不需要构建它们,因为它们不包含任何C++代码。仅在进行原型制作时才使用此功能。您不能以此创建完整的应用程序。
Qt Quick UI项目无法部署到嵌入式或移动目标平台。对于这些平台,请创建Qt Quick application 。
Library > Qt Quick 2 Extension Plugin:可创建C ++插件,使它们能够提供可动态加载到Qt Quick 2应用程序中的扩展。
注意:特定目标平台的SDK可能会为该平台安装其他模板。例如,QNX模板是作为qnxsdk的一部分安装的。
Qt Creator创建必要的样板文件。有些文件特定于特定的目标平台。
1、File > New File or Project > Application
2、选择应用程序类型,一般我们选择“Qt Quick Application - Empty”
源文件 | 目的 |
---|---|
Alarms.pro | 项目文件 |
main.cpp | 应用程序的主要C ++代码文件。 |
qml.qrc | 资源文件,其中包含源文件的名称,但main.cpp和项目文件除外。 |
main.cpp内容如下:
#include
#include
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
const QUrl url(QStringLiteral("qrc:/main.qml"));
QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
&app, [url](QObject *obj, const QUrl &objUrl) {
if (!obj && url == objUrl)
QCoreApplication::exit(-1);
}, Qt::QueuedConnection);
engine.load(url);
return app.exec();
}
main.qml内容如下:
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
}
import QtQuick 2.12 //类似#include
import QtQuick.Window 2.12
Window { //注册到Qt quick的对象
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Rectangle{
width: parent.width/2
height: parent.height/2 //widget&height是Rectangle的对象
color: "red"
Text { //Text可以通过Rectangle对象的子对象输出文本
id: title
text: qsTr("hello world")
}
}
}
import QtQuick 2.12 //类似#include
import QtQuick.Window 2.12
Window { //注册到Qt quick的对象
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Rectangle{
width: parent.width/2
height: parent.height/2 //widget&height是Rectangle的对象
radius: 10 //圆角矩形
color: "red"
border.color: "black" //边界颜色
border.width: 5 //边界宽度
Text { //Text可以通过Rectangle对象的子对象输出文本
id: title
color: "#00FF00" //绿色
text: qsTr("hello world")
anchors.centerIn: parent //将文本放在Rectangle的中间
}
MouseArea{ //处理鼠标事件
anchors.fill: parent //Rectangle
onClicked: { //鼠标点击
Qt.quit(); //终止程序
}
}
}
}
不写python,跳过
Qt Creator将创建下列文件
.qmlproject
项目文件定义项目文件夹中所有QML,JavaScript和图片文件都属于此项目。因此,不需要单独列出项目中的所有文件.qml
文件定义UI项,如组件或者整个应用程序UIui.qml
定义应用程序UI的窗体,如果选择了使用ui.qml复选框,则创建此文件要在应用程序中使用JavaScript和图形文件,请将其复制到项目文件夹中
例如,Qt quick UI原型项目可以用于测试或者原型用户界面,或者仅用于QML编译单独的项目。您不能将他们用于应用程序开发,因为他们不包含
有关如何将Qt quick UI原型项目转换为Qt quick应用项目的更改信息,请参考将UI项目转换为应用项目
参考: