QT Quick(C++)跨平台应用程序项目实战教程 2 — 环境搭建和项目创建

目录

引言

1. 安装Qt开发环境

1.1 下载Qt安装包

1.2 安装Qt

1.3 安装MSVC编译器

2. 创建Qt Quick项目

2.1 创建新项目

2.2 项目结构

2.3 运行项目

3. 理解项目代码

3.1 main.cpp文件

3.2 Main.qml文件


引言

在上一篇文章中,我们介绍了本教程的目标和结构,并简要说明了Qt Quick和C++在跨平台开发中的重要性。本文是教程的第2篇,我们将详细讲解如何搭建Qt开发环境,并创建一个Qt Quick项目。这是开发跨平台应用程序的第一步,也是至关重要的一步。

1. 安装Qt开发环境

1.1 下载Qt安装包

首先,需要下载并安装Qt开发环境。Qt提供了一个名为Qt Online Installer的工具,可以帮助我们轻松安装Qt框架、Qt Creator IDE以及相关的工具和库。

首先访问Qt官方网站并下载适用于Windows操作系统的安装包,如下图所示。

如果官网下载速度慢,也可以选择清华大学开源软件镜像站进行下载。

1.2 安装Qt

双击安装包进入安装界面。首先需要登录Qt账户,如果没有需要按照界面提示进行账户注册然后再登录。

然后选择安装目录并且选择自定义安装:

在接下来的安装过程中,需要选择要安装的组件,推荐按照下图所示进行勾选

最后按照默认提示完成安装即可(在安装过程中建议最好关闭杀毒软件)。安装过程中如果出现下载错误,可以单击“重试”按钮,大部分错误都是因为网络不稳定因素造成的,通过重试可以重新断点续传。

本教程安装的Qt版本为6.8.2这是一个长期支持版本。Qt Creator版本为16.0.0

1.3 安装MSVC编译器

前面安装的Qt本质上是一个C++组件库,它的运行还需要依赖C++及编译器环境。由于本教程是在Windows系统上进行开发,因此优先推荐适配Windows C++的MSVC编译器。

具体的,可以使用Visual Studio 2022来安装对应的MSVC编译器。首先前往Visual Studio官网下载Visual Studio 2022安装包。

下载完成后双击安装包进行安装,在组件选择时选择“使用C++的桌面开发”,如下图所示:

选择好以后安装默认提示进行安装即可。

2. 创建Qt Quick项目

2.1 创建新项目

打开Qt Creator,依次单击菜单栏顶部“文件”->“New Project”,在弹出的项目类型选项中选择Qt Quick Application:

设置项目路径及名称:

然后选择对应的Qt版本:

最后选择构建套件:

最后单击完成即可。

2.2 项目结构

创建项目后,会自动生成以下文件和文件夹:

  • Main.qml:这是Qt Quick应用程序的主界面文件,使用QML语言编写。

  • main.cpp:这是C++入口文件,负责启动QML引擎并加载main.qml

  • CMakeLists.txt:这是项目的构建配置文件。

2.3 运行项目

单击左下角锤子状“按钮”,即可编译项目。

编译完成后,按Ctrl+R健运行启动程序,如下图所示:

你的第一个Qt Quick应用程序!

3. 理解项目代码

3.1 main.cpp文件

main.cpp是应用程序的入口点,代码如下:

#include <QGuiApplication>
#include <QQmlApplicationEngine>int main(int argc, char *argv[])
{QGuiApplication app(argc, argv);QQmlApplicationEngine engine;QObject::connect(&engine,&QQmlApplicationEngine::objectCreationFailed,&app,[]() { QCoreApplication::exit(-1); },Qt::QueuedConnection);engine.loadFromModule("AudioPlayer", "Main");return app.exec();
}
  • QGuiApplication:管理GUI应用程序的控制流和主设置。

  • QQmlApplicationEngine:用于加载和运行QML文件。

  • engine.loadFromModule:加载Main.qml文件作为应用程序AudioPlayer的主界面。

3.2 Main.qml文件

Main.qml定义了应用程序的用户界面,代码如下:

import QtQuickWindow {width: 640height: 480visible: truetitle: qsTr("Hello World")
}
  • Window:表示应用程序的主窗口。

  • widthheight:设置窗口的初始大小。

  • visible:设置窗口是否可见。

  • title:设置窗口标题。

现在,你已经成功搭建了Qt开发环境,并创建了第一个Qt Quick项目。在下一篇文章中,我们将深入探讨Qt Quick的基础知识,学习如何使用QML创建更复杂的用户界面。

上一章:QT Quick(C++)跨平台应用程序项目实战教程 1 — 教程简介-CSDN博客

下一章:QT Quick(C++)跨平台应用程序项目实战教程 3 — 项目基本设置(窗体尺寸、中文标题、窗体图标、可执行程序图标)-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/73207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

macOS Sequoia 15.3 一直弹出“xx正在访问你的屏幕”

&#x1f645; 问题描述 macOS 系统升级后&#xff08;15.2或者15.3均出现过此问题&#xff09;&#xff0c;不管是截图还是开腾讯会议&#xff0c;只要跟捕捉屏幕有关&#xff0c;都一直弹出这个选项&#xff0c;而且所有软件我都允许访问屏幕了&#xff0c;这个不是询问是否…

二叉树的学习

目录 树型结构&#xff08;了解&#xff09; 概念 概念&#xff08;重要&#xff09; 树的表示形式&#xff08;了解&#xff09; 树的应用 二叉树&#xff08;重点&#xff09; 概念 两种特殊的二叉树 二叉树的性质 利用性质做题&#xff08;关键&#xff09; 二叉…

AbMole新生大鼠脑类器官培养Protocol

近日&#xff0c;希腊亚里士多德大学塞萨洛尼基分校的研究团队在《神经科学方法》&#xff08;Journal of Neuroscience Methods&#xff09;期刊上发表了一项引人注目的研究&#xff0c;他们开发了一种基于新生大鼠脑组织的新型类器官培养协议&#xff0c;并展望其在阿尔茨海默…

物理环境与安全

物理安全的重要性 信息系统安全战略的一个重要组成部分物理安全面临问题 环境风险不确定性人类活动的不可预知性 典型的物理安全问题 自然灾害环境因素设备安全、介质安全、传输安全 场地选择 区域&#xff1a;避开自然灾害高发区环境&#xff1a;原理可能的危险因素抗震&…

手动离线安装NextCloud插件

1、下载离线插件安装包 进入NextCloud官方插件商城&#xff1a;https://apps.nextcloud.com/ 选择自己需要的插件软件 选择NextCloud对应版本的插件安装包 2、解压安装 进入的到NextCloud安装目录的apps目录 cd /var/www/html/apps 将下载的xxx.tar.gz复制到apps目录中解…

算力100问☞第93问:算力资源为何更分散了?

目录 1、政策驱动与地方投资的盲目性 2、美国芯片断供与国产替代的阵痛 3、政企市场对私有云的偏好 4、技术标准与供需结构的失衡 5、产业生态与市场机制的滞后 6、破局路径与未来展望 在大模型和人工智能技术快速发展的背景下,算力资源已成为数字经济时代的核心基础设施…

基于HTML的邮件发送状态查询界面设计示例

以下是一个基于HTML的邮件发送状态查询界面设计示例&#xff0c;结合筛选功能、状态展示和重新发送操作&#xff0c;采用Bootstrap框架实现响应式布局&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"&…

分治-快速排序系列一>快速排序

目录 题目方法&#xff1a;优化方法&#xff1a;代码&#xff1a; 题目方法&#xff1a; 忘记快速排序看这里&#xff1a;链接: link 优化方法&#xff1a; 代码&#xff1a; public int[] sortArray(int[] nums) {qsort(nums,0,nums.length-1);return nums;}private void qso…

《AI大模型趣味实战 》第7集:多端适配 个人新闻头条 基于大模型和RSS聚合打造个人新闻电台(Flask WEB版) 1

AI大模型趣味实战 第7集&#xff1a;多端适配 个人新闻头条 基于大模型和RSS聚合打造个人新闻电台(Flask WEB版) 1 摘要 在信息爆炸的时代&#xff0c;如何高效获取和筛选感兴趣的新闻内容成为一个现实问题。本文将带领读者通过Python和Flask框架&#xff0c;结合大模型的强大…

微服务 - 中级篇

微服务 - 中级篇 一、微服务架构深化&#xff08;一&#xff09;服务拆分原则&#xff08;二&#xff09;服务通信方式 二、微服务技术选型&#xff08;一&#xff09;开发框架&#xff08;二&#xff09;容器技术 三、微服务实践与优化&#xff08;后续会详细分析&#xff09;…

STM32__红外避障模块的使用

目录 一、红外避障模块 概述 二、直接读取OUT引脚电平 三、使用中断方式触发 一、红外避障模块 概述 引脚解释&#xff1a; VCC接3.3V 或 5.0VGND接开发板的GNDOUT数字量输出(0或1&#xff09;; 低电平时表示前方有障碍 ; 通过可调电阻调整检测距离 产品特点&#xff1a; …

【AI大模型】DeepSeek + 通义万相高效制作AI视频实战详解

目录 一、前言 二、AI视频概述 2.1 什么是AI视频 2.2 AI视频核心特点 2.3 AI视频应用场景 三、通义万相介绍 3.1 通义万相概述 3.1.1 什么是通义万相 3.2 通义万相核心特点 3.3 通义万相技术特点 3.4 通义万相应用场景 四、DeepSeek 通义万相制作AI视频流程 4.1 D…

帆软第二题 - 多源报表

第二题&#xff0c;多源报表 实现功能&#xff1a; 多源报表&#xff1a;供应商与所在地区来源于表PRODUCER 明细来源于表PRODUCT 分组报表&#xff1a;按组显示数据&#xff0c;每个供应商对应其产品明细 按组分页&#xff1a;每个供应商一页 表头重复&#xff1a; 数据…

SVN忽略不必提交的文件夹和文件方法

最近有小伙伴在问&#xff1a;SVN在提交时如何忽略不必提交的文件夹和文件&#xff0c;如node_modules&#xff0c;.git&#xff0c;.idea等&#xff1f; 操作其实很简单&#xff0c;下面直接上图&#xff1a; 第一步&#xff1a; 第二步&#xff1a; 最后一步&#xff1a; 第…

Uthana,AI 3D角色动画生成平台

Uthana是什么 Uthana 是专注于3D角色动画生成的AI平台。平台基于简单的文字描述、参考视频或动作库搜索&#xff0c;快速为用户生成逼真的动画&#xff0c;支持适配任何骨骼结构的模型。Uthana 提供风格迁移、API集成和定制模型训练等功能&#xff0c;满足不同用户需求。平台提…

六十天前端强化训练之第二十九天之深入解析:从零构建企业级Vue项目的完整指南

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、Vite核心原理与开发优势 二、项目创建深度解析 三、配置体系深度剖析 四、企业级项目架构设计 五、性能优化实战 六、开发提效技巧 七、质量保障体系 八、扩展阅读…

Ceph集群2025(Squid版)导出高可用NFS集群(上集)

#创建一个CephFS 文件系统 ceph fs volume create cephfs02#创建子卷 ceph fs subvolumegroup create cephfs02 myfsg2#查看子卷 ceph fs subvolumegroup ls cephfs02[{"name": "myfsg2"} ]创建 NFS Ganesha 集群 #例子 $ ceph nfs cluster create <c…

第2.3节 Android生成全量和增量报告

覆盖率报告&#xff08;Coverage Report&#xff09;是一种软件测试工具生成的报告&#xff0c;用于评估测试用例对代码的覆盖程度。它通过统计代码中哪些部分已经被测试用例执行过&#xff0c;哪些部分还没有被执行&#xff0c;来衡量测试的充分性。覆盖率报告通常包括以下几种…

奇迹科技:蓝牙网关赋能少儿篮球教育的创新融合案例研究

一、引言 本文研究了福建奇迹运动体育科技有限公司&#xff08;简称‘奇迹科技’&#xff09;如何利用其创新产品体系和桂花网蓝牙网关M1500&#xff0c;与少儿篮球教育实现深度融合。重点分析其在提升教学效果、保障训练安全、优化个性化教学等方面的实践与成效&#xff0c;为…

高考志愿填报管理系统基于Spring Boot SSM

目录 摘要 ‌一、系统需求分析‌&#xff1a; 1.1用户主体分析 1.2 功能需求分析 1.3、非功能需求分析 二、‌技术实现‌&#xff1a; ‌三、结论‌&#xff1a; 摘要 该系统主要实现了&#xff1a;学生信息管理、院校信息查询、专业信息展示、志愿填报模拟、智能推荐管…