QML基础 -- 创建QML项目的两种方式(QT Quick UI Prototype和QT Quick Application - Empty)

本文详细介绍在Win10环境下,使用QtCreator4.7.1+mingw32bit创建QML项目的两种方法:一是通过C++交互,二是纯QML方式。前者适合界面文件与QML资源文件结合,后者界面更流畅,适配触屏,但逻辑处理较弱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.编程环境

  • win10专业版
  • Qt creator4.7.1 + mingw32bit
  • 此项工程创建适用于其他环境

2. 创建方式一 – 通过与C++的交互进行创建(QT Quick Application - Empty)

通过此种方式,可以在界面端加入QML文件。使用qt widgets创建GUI图形界面,这种方式使用C++编程实现起来也非常的简单

1)创建项目

在这里插入图片描述

模版中选择Qt Quick空项目类型,其他项目类型在以后按需特定选用创建

在这里插入图片描述

在这里插入图片描述

之后就是一路默认选择,直到项目创建成功

2)运行效果

项目构建完毕之后,呈现如下所示

在这里插入图片描述

此项目就是一个典型的c++界面文件,而QML文件则是以资源文件的形式被widget界面调用执行

main.qml中输入相关的代码,Ctrl + R运行,有如下类似的效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XTiVKkyc-1583921754636)(QML%E5%9F%BA%E7%A1%80%20--%20%E5%88%9B%E5%BB%BAQML%E9%A1%B9%E7%9B%AE%E7%9A%84%E4%B8%A4%E7%A7%8D%E6%96%B9%E5%BC%8F%EF%BC%88QT%20Quick%20UI%20Prototype%E5%92%8CQT%20Quick%20Application%20-%20Empty%EF%BC%89.assets/15.png)]

2. 创建方式二 – 使用QML的方式进行创建(QT Quick UI Prototype)

通过这种方式创建的QML项目显示界面会更加的流畅美观。更加适用于触屏的操作。但复杂的逻辑结构是它的弱项。

1)创建项目

在这里插入图片描述

以QML的方式创建QML项目,可以通过设计师模式对QML文件UI控件进行操作

在这里插入图片描述
然后一路确认,直到项目完成创建,得到下面的项目树

在这里插入图片描述

其中Word.qml文件是我后面往工程中添加的,只为显示不同的效果

2)解析文件

这里我们发现,出现了一个.qmlprojectQmL工程文件,就如同QT界面文件的.pro文件类似,相关作用如下

  • .qmlproject : 定义项目文件夹中的所有 QML、JavaScript 和图像文件都属于项目。因此,不需要单独列出项目中的所有文件。
  • .qml : 定义了一个 UI 项目,例如组件,屏幕或整个应用程序 UI。
  • ui.qml : 定义了应用程序 UI 的窗体。如果创建项目文件时选择了With .ui.qml file复选框,则会创建此文件,应用于设计师模式。

在这里插入图片描述

默认生成的.qmlproject文件中会将现有的一个文件设置为入口文件。若后续添加多个文件,想要同时运行单个文件时,可将其注释,而通过这种方式创建的QML项目可以使用设计师模式,实时对显示的界面进行组件设计。是得界面的显示更流畅,如下所示
在这里插入图片描述

3)运行效果

在这里插入图片描述

在这里插入图片描述

<think>好的,我需要帮助用户了解如何在Qt创建并运行一个QML项目。首先,我得回忆一下用户之前的问题,他询问了学习Qt的方法以及项目实践中遇到未知技术时的应对策略,现在他具体想了解如何创建运行QML项目。 首先,我应该确保回答覆盖创建项目的步骤,可能包括安装环境、使用Qt Creator的流程,以及运行的基本步骤。用户可能需要详细的步骤说明,尤其是对于刚入门的新手来说,每一步都需要清晰。 然后,我需要考虑用户可能的环境差异,比如不同操作系统下的路径可能不同,或者Qt版本的不同可能会影响步骤的细节。因此,最好在回答中提到这些可能的差异,并建议用户参考官方文档或根据实际情况调整。 接下来,创建QML项目时,Qt Creator中的选项可能会有不同的模板,比如Qt Quick ApplicationQt Quick UI Prototype等,需要明确指导用户选择正确的模板。此外,项目配置部分,比如选择Qt版本编译器,也需要详细说明,确保用户不会在这里卡住。 在代码示例部分,提供一个简单的QML文件内容,并解释各个部分的作用,这样用户不仅知道怎么做,还能理解背后的原理。例如,解释Window、TextMouseArea的作用,以及信号与槽的使用。 运行项目后,用户可能需要知道如何查看输出,或者遇到常见错误如何处理。虽然用户的问题主要集中在创建运行,但可能也需要简要提及调试方法或常见问题,比如缺少模块或插件导致的运行失败。 另外,用户之前提到在项目中可能遇到未接触过的知识,因此在回答中可以适当链接之前的建议,比如参考官方文档或社区资源,帮助用户在遇到问题时知道如何寻求帮助。 最后,确保整个回答结构清晰,分步骤进行,使用户能够一步步跟随操作。同时,语言要简洁明了,避免使用过于专业的术语,或者对术语进行解释,以适合不同水平的读者。 总结来说,我需要分步骤指导用户如何在Qt Creator中创建QML项目,包括环境准备、项目创建、编写代码、运行调试,同时提醒可能遇到的问题解决方法,并推荐相关资源供进一步学习。</think>以下是使用Qt Creator创建并运行QML项目的详细步骤: --- ### **一、环境准备** 1. **安装Qt** 确保已安装包含 **Qt Quick** 组件的Qt版本(如Qt 6.4+),安装时勾选: - `Qt Quick`(QML开发核心库) - `Qt Creator`(集成开发环境) - 编译器(如MinGW/MSVC或Clang) --- ### **二、创建QML项目** #### **步骤1:打开Qt Creator** - 启动Qt Creator,点击菜单栏的 **`文件 → 新建文件或项目`**(或按`Ctrl+N`)。 #### **步骤2:选择项目模板** - 在弹出的对话框中: 1. 选择 **`Application`** → **`Qt Quick Application - Empty`**(默认使用QML的现代UI模板)。 2. 点击 **`Choose`**。 #### **步骤3:配置项目** 1. **设置项目名称路径** - 输入项目名称(如`MyFirstQML`),选择保存路径。 2. **选择构建系统** - 推荐使用 **`CMake`**(Qt 6默认)或 **`qmake`**(Qt 5兼容)。 3. **选择Qt版本编译器** - 确保勾选已安装的Qt版本(如Qt 6.4.0)编译器(如MinGW 11.2)。 4. 点击 **`下一步`** → **`完成`**。 --- ### **三、编写QML代码** #### **1. 主QML文件结构** - 项目创建后,默认生成一个`.qml`文件(通常为`main.qml`),内容如下: ```qml import QtQuick import QtQuick.Window Window { width: 400 height: 300 visible: true title: qsTr("Hello QML") Text { text: "点击我!" anchors.centerIn: parent MouseArea { anchors.fill: parent onClicked: { console.log("按钮被点击了!") } } } } ``` - **代码解释**: - `Window`:定义应用程序窗口。 - `Text` + `MouseArea`:创建一个可点击的文本区域。 #### **2. 入口文件`main.cpp`(自动生成)** - Qt Creator会自动生成C++入口代码,用于加载QML文件: ```cpp #include <QGuiApplication> #include <QQmlApplicationEngine> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); } ``` --- ### **四、运行项目** #### **步骤1:构建项目** - 点击左下角的 **`▶` 运行按钮**(或按`Ctrl+R`),Qt Creator会自动: 1. **编译代码**:生成可执行文件。 2. **启动应用程序**:显示QML界面。 #### **步骤2:查看运行效果** - 窗口将显示一个居中文本“点击我!”,点击后会输出日志: ```plaintext qml: 按钮被点击了! ``` --- ### **五、常见问题解决** #### **1. 黑屏/窗口不显示** - **原因**:未正确加载QML文件路径。 - **解决**:检查`main.cpp`中的`engine.load()`路径是否指向正确的QML文件。 #### **2. 缺少QML模块(如QtQuick.Controls报错)** - **解决**:在`.qml`文件头部添加缺失的导入语句: ```qml import QtQuick.Controls 2.15 ``` #### **3. 调试QML** -Qt Creator中,使用 **`F5`** 进入调试模式,可在 **`应用程序输出`** 面板查看日志。 --- ### **六、扩展:添加交互功能** ```qml // 修改Text部分,实现点击后改变文字 Text { id: myText text: "点击我!" anchors.centerIn: parent MouseArea { anchors.fill: parent onClicked: { myText.text = "已点击!" myText.color = "red" } } } ``` --- ### **七、学习资源推荐** 1. **官方文档**:[Qt QML入门指南](https://doc.qt.io/qt-6/qmlapplications.html) 2. **示例项目**: -Qt Creator中,点击 **`欢迎 → 示例`**,搜索“QML”查看官方示例(如动画、图表)。 通过以上步骤,你已成功创建并运行了一个QML项目!后续可通过逐步添加控件逻辑深入掌握Qt Quick开发。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值