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

news2025/4/21 14:22:35

目录

引言

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 QtQuick

Window {
    width: 640
    height: 480
    visible: true
    title: 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.coloradmin.cn/o/2320504.html

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

相关文章

登山第二十梯:无人机实时自主探索——我是一只小小小鸟

文章目录 一 摘要 二 资源 三 内容 一 摘要 自主探索是无人机 &#xff08;UAV&#xff09; 各种应用的基本问题。最近&#xff0c;基于 LiDAR 的探索因其能够生成大规模环境的高精度点云地图而受到广泛关注。虽然点云本身就为导航提供了信息&#xff0c;但许多现有的勘探方…

word插入Mathtype公式居中和自动更新

word插入公式自动更新 前提&#xff1a;安装Mathtype 1.word中查看页的宽度 出现如下 2.设置样式 出现这个窗口 给样式随便起个名字 3.修改样式 3.1 设置两个制表位 第二个 3.2 修改公式字体 如下所示 4. 修改公式格式 4.1在word中打开 Mathtype 4.2 修改公式的格式 变成…

网络层之IP协议

在讨论传输层时, 我们都只讨论了发送方和接收方的问题, 而没有讨论中间的网络形态的问题. 也就是数据包如何从主机传送到主机的? 如图, 主机B发送数据到主机C, 发送报文需要进行路径选择, 主机B-> F-> G-> H-> C-> D -> 主机C 这条路径是如何被选择出来的?…

基于springboot的旅游网站(013)

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff0c;旅游网站当然也不能排除在外&#xff0c;随着旅游网站的不断成熟&#xff0c;它彻底改变了过去传统的旅游网站方式&#xff0c;不仅使旅游管理…

人工智能 - 在 Spring Boot 中调用 AnythingLLM+DeepSeek 的知识库获取消息接口

整体逻辑: 自建系统的web UI界面调用接口: 1.SpringBoot接口&#xff1a;/anything/chatMessageAnything 2.调用anythingLLM - 调用知识库deepseek r1 . 部署 AnythingLLM DeepSeek 本地知识库 的环境要求如下&#xff1a; 一、硬件要求 CPU 最低&#xff1a;4核&#x…

体育直播模板nba英超直播欧洲杯直播模板手机自适应

源码名称&#xff1a;体育直播模板nba英超直播欧洲杯直播模板手机自适应帝国cms 7.5模板 开发环境&#xff1a;帝国cms7.5 空间支持&#xff1a;phpmysql 带软件采集&#xff0c;可以挂着自动采集发布&#xff0c;无需人工操作&#xff01; 模板特点&#xff1a; 程序伪静态…

STM32-ARM

一、体系架构 ARM里有37个寄存器ALU算数逻辑单元PC程序计数器&#xff1a;指向哪里执行哪里SP栈指针寄存器LR链接寄存器&#xff1a;保存函数入口地址CPSR(current program status register)当前程序状态寄存器&#xff1a;SOSR(CPSR的备份)MMU(内存管理单元)Cache高速缓冲(iCa…

ripro 主题激活 问题写入授权Token失败,可能无文件写入权限

ripro 主题激活 问题 写入授权Token失败&#xff0c;可能无文件写入权限 找到主题下面的functions.php文件&#xff0c;给其他写入权限。就好了。

计算机网络——通信基础和传输介质

物理层任务&#xff1a;实现相邻节点之间比特&#xff08;0或1&#xff09;的传输 到了数据链路层之后&#xff0c;它会以帧为单位&#xff0c;把若干个比特交给物理层&#xff0c;物理层需要把这些比特信息转化成信号&#xff0c;在物理传输媒体上进行传输 通信基础基本概念 信…

python-selenium 爬虫 由易到难

本质 python第三方库 selenium 控制 浏览器驱动 浏览器驱动控制浏览器 推荐 edge 浏览器驱动&#xff08;不容易遇到版本或者兼容性的问题&#xff09; 驱动下载网址&#xff1a;链接: link 1、实战1 &#xff08;1&#xff09;安装 selenium 库 pip install selenium&#…

Execution failed for task ‘:path_provider_android:compileDebugJavaWithJavac‘.

What went wrong: Execution failed for task ‘:path_provider_android:compileDebugJavaWithJavac’. Could not resolve all files for configuration ‘:path_provider_android:androidJdkImage’. Failed to transform core-for-system-modules.jar to match attributes {…

T113-i开发板的休眠与RTC定时唤醒指南

​​在嵌入式系统设计中&#xff0c;休眠与唤醒技术是优化电源管理、延长设备续航的关键。飞凌嵌入式基于全志T113-i处理器开发设计的OK113i-S开发板提供了两种休眠模式&#xff1a;freeze和mem&#xff0c;以满足不同应用场景下的功耗与恢复速度需求。本文将详细介绍如何让OK1…

基于Spring Boot的公司资产网站的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

基于CVX优化器的储能电池调峰调频算法matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 原理概述 4.2 CVX工具箱概述 5.完整工程文件 1.课题概述 基于CVX优化器的储能电池调峰调频算法matlab仿真。CVX 是一种用于求解凸优化问题的强大工具。凸优化问题具有良好的数学性质&#xff0c;能…

SpringBoot3+Vue3开发学生成绩管理系统

系统介绍 此系统功能包含&#xff1a;首页、课程管理、成绩查询、成绩详情、班级管理、专业管理、用户管理等功能。用户管理又细分为账号管理、学生管理、教师管理、管理员管理。 基础功能包含&#xff1a;登录、退出、修改登录人信息、修改登录人密码。 分为4种角色&#x…

正则魔法:解码 return /^\d+$/.test(text) ? text : ‘0‘ 的秘密

&#x1f680; 正则魔法&#xff1a;解码 return /^\d$/.test(text) ? text : 0 的秘密 &#x1f31f; 嘿&#xff0c;技术探险家们&#xff01;&#x1f44b; 今天我们要破解一段看似简单的代码&#xff1a;return /^\d$/.test(text) ? text : 0。它藏在一个 Vue 前端组件中…

基于BClinux8部署Ceph 19.2(squid)集群

#作者&#xff1a;闫乾苓 文章目录 1.版本选择Ceph版本发布历史目前官方在维护的版本 2.部署方法3.服务器规划4.前置配置4.1系统更新4.2配置hosts cat >> /etc/hosts << EOFssh-keygenssh-copy-id ceph01ssh-copy-id ceph02ssh-copy-id ceph034.5 Python34.6 Syst…

CVPR2025 | 对抗样本智能安全方向论文汇总 | 持续更新中~

汇总结果来源&#xff1a;CVPR 2025 Accepted Papers 若文中出现的 论文链接 和 GitHub链接 点不开&#xff0c;则说明还未公布&#xff0c;在公布后笔者会及时添加. 若笔者未及时添加&#xff0c;欢迎读者告知. 文章根据题目关键词搜索&#xff0c;可能会有遗漏. 若笔者出现…

磁盘清理工具-TreeSize Free介绍

TreeSizeFree是一个磁盘空间管理工具&#xff0c;主要用于分析磁盘使用情况&#xff0c;帮助用户找到占用空间大的文件和文件夹: 特点&#xff1a;按大小排序&#xff1a;快速找到占用空间最大的文件或文件夹 一般可以删除: 扫描 C:\Users\XXX\AppData\Local\Temp 或 C:\Window…

c#知识点补充2

1.非静态类能否调用静态方法可以 2.对string类型扩展方法&#xff0c;如何进行 类用静态类&#xff0c;参数是this 调用如下 3.out的用法 一定要给a赋值 这种写法不行 这样才行 4.匿名类 5.委托的使用 无论是匿名委托&#xff0c;还是具命委托&#xff0c;委托实例化后一定要…