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

目录

引言

1. 安装Qt开发环境

1.1 下载Qt安装包

1.2 安装Qt

1.3 安装Visual Studio 2022

1.4 在Visual Studio 2022中安装Qt插件

1.5 在Visual Studio 2022中安装大模型编程助手

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这是一个长期支持版本。

1.3 安装Visual Studio 2022

前面安装的Qt本质上是一个C++组件库,它的运行还需要依赖C++及编译器环境。本文推荐使用Visual Studio 2022。使用Visual Studio 2022作为Qt开发工具,可以提供强大的调试功能、高效的代码编辑器和丰富的插件支持,提升开发效率和体验。

首先前往Visual Studio官网下载Visual Studio 2022安装包。

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

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

1.4 在Visual Studio 2022中安装Qt插件

安装完成后,打开Visual Studio 2022,选择右侧“继续但无需代码”链接进入Visual Studio 2022主界面,如下图所示:

单击顶部菜单栏,选择“扩展”->“管理扩展”。在“浏览”窗体中选择Qt Visual Studio Tools进行安装,如下图所示:

选择好以后,关闭Visual Studio 2022,然后会自动进行插件更新。

1.5 在Visual Studio 2022中安装大模型编程助手

为了提高后续编程效率,推荐在Visual Studio 2022中安装大模型编程助手。具体安装方法同1.4节,只需要安装对应的插件即可。插件可以选择智普的CodeGeeX,如下图所示。

2. 创建Qt Quick项目

2.1 创建新项目

打开Visual Studio 2022,选择“创建新项目”:

在模板选择页面搜索qt,然后选择Qt Quick Application,如下图所示:

项目名称填写AudioPlayer,如下图所示:

单击创建,进入Qt项目配置界面,选择CMake工程,如下图所示:

最后单击Finish即可。

2.2 项目结构

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

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

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

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

2.3 运行项目

直接按Ctrl+F5可以启动程序,如下图所示:

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

3. 理解项目代码

3.1 main.cpp文件

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

#include <QGuiApplication>
#include <QQmlApplicationEngine>int main(int argc, char *argv[])
{
#if defined(Q_OS_WIN) && QT_VERSION_CHECK(5, 6, 0) <= QT_VERSION && QT_VERSION < QT_VERSION_CHECK(6, 0, 0)QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endifQGuiApplication app(argc, argv);QQmlApplicationEngine engine;engine.load(QUrl(QStringLiteral("qrc:/qt/qml/audioplayer/main.qml")));if (engine.rootObjects().isEmpty())return -1;return app.exec();
}
  • QGuiApplication:管理GUI应用程序的控制流和主设置。

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

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

3.2 main.qml文件

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

import QtQuick 2.9
import QtQuick.Window 2.2Window {visible: truewidth: 640height: 480title: "AudioPlayer"Text {anchors.fill: parenthorizontalAlignment: Text.AlignHCenterverticalAlignment: Text.AlignVCenterfont.bold: truefont.pointSize: 42text: "Hello World!"}
}
  • Window:表示应用程序的主窗口。

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

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

  • title:设置窗口标题。

  • Text:设置初始文本,现在在界面中间。

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

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

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

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

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

相关文章

免密登录远程服务器shell脚本

一、脚本代码 #!/bin/bash #提示用户输入用户i名和ip地址 read -p "请输入远程服务器的用户名: " hname read -p "请输入远程服务器的IP地址: " fip read -p "请输入远程服务器的远程端口:" sdk #检查是否配置了免密登录 function sfmm(){ …

repo init 错误 Permission denied (publickey)

一、已经生成ssh-key并设置到gerrit上 二、已经设置.gitconfig &#xff08;此步骤是公司要求&#xff0c;设置gerrit地址为一个别名之类的&#xff0c;有的公司不需要&#xff09; 然后出现下面的错误&#xff0c;最后发现忘记设置git的用户名和邮箱 1. git config --globa…

卷积神经网络 - 汇聚层

卷积神经网络一般由卷积层、汇聚层和全连接层构成&#xff0c;本文我们来学习汇聚层。 汇聚层(Pooling Layer)也叫子采样层(Subsampling Layer)&#xff0c;其作用是进 行特征选择&#xff0c;降低特征数量&#xff0c;从而减少参数数量。 卷积层虽然可以显著减少网络中连接的…

C++ 头文件说明

如果一个程序足够大&#xff0c;代码功能很多&#xff0c;可以想象&#xff0c;不可能把代码写在一个cpp文件里。我们需要模块化&#xff0c;这样的好处很多&#xff0c;方便分工合作&#xff0c;可读性提高&#xff0c;调用也方便。 这个要怎么做呢&#xff1f; 很简单直接当…

【蓝桥杯】省赛:分糖果(思维/模拟)

思路 数据很小&#xff0c;直接暴力模拟。 有意思的是一个列表如何当成循环队列写&#xff1f;可以arr[(i1)%n]让他右边超出时自动回到开头。 code import os import sysn int(input()) arr list(map(int,input().split()))ans 0 while 1:arr1 arr.copy()for i in range…

如何理解分布式光纤传感器?

关键词&#xff1a;OFDR、分布式光纤传感、光纤传感器 分布式光纤传感器是近年来备受关注的前沿技术&#xff0c;其核心在于将光纤本身作为传感介质和信号传输介质&#xff0c;通过解析光信号在光纤中的散射效应&#xff0c;实现对温度、应变、振动等物理量的连续、无盲区、高…

【java面型对象进阶】------继承实例

继承结构下的标准Javabean 代码如下&#xff1a; package demo10;//定义员工父类 public class Employee {private String id;private String name;private double salary;//构造方法public Employee(){}public Employee(String id,String name,double salary){this.idid;thi…

matrix-breakout-2-morpheus 靶机----练习攻略 【仅获取shell】

【此练习仅做到反弹shell】 1.靶机下载地址 https://download.vulnhub.com/matrix-breakout/matrix-breakout-2-morpheus.ova 2. 打开靶机&#xff0c;kali使用nmap扫描同C段的主机 找到靶机ip 确保靶机和kali网卡均为NAT模式 先查看kali的ip nmap 192.168.182.1/24 …

解锁MySQL 8.0.41源码调试:Mac 11.6+CLion 2024.3.4实战指南

文章目录 解锁MySQL 8.0.41源码调试&#xff1a;Mac 11.6CLion 2024.3.4实战指南前期准备环境搭建详细步骤安装 CLion安装 CMake 3.30.5准备 MySQL 8.0.41 源码配置 CMake 选项构建 MySQL 项目 调试环境配置与验证配置 LLDB 调试器启动调试验证调试环境 总结与拓展碰到的问题1.…

使用码云搭建CocoaPods远程私有库

一、创建远程私有索引库 用来存放私有框架的详细描述信息.podspec文件 1. 创建私有库 假设码云上创建的私有库为repo-spec 2. 查看本地已存在的索引库 pod repo list 3. 将远程私有索引库添加到本地 pod repo add [https://gitee.com/jingluoguo/repo-spec.git](https://gi…

Devops之AWS:如何安装AWS CLI

AWS 命令行界面&#xff08;AWS CLI&#xff09;是一种开源工具&#xff0c;让我们能够使用命令行 Shell 中的命令与 AWS 服务进行交互。 安装步骤&#xff1a; 下载并运行AWS CLI的MSI安装程序&#xff1a; 点击如下的链接&#xff0c;即可下载MSI安装程序&#xff1a; htt…

docker需要sudo才能使用

一种方法是添加当前用户到docker组里去&#xff0c;当时添加的时候貌似是没问题的&#xff0c;但是现在又不可以了 产生的报错 ❯ docker images Cannot connect to the Docker daemon at unix:///home/ying/.docker/desktop/docker.sock. Is the docker daemon running?解决…

jmeter将返回的数据写入csv文件

举例说明&#xff0c;我需要接口返回体中的exampleid与todoid的数据信息&#xff08;使用边界提取器先将其提取&#xff09;&#xff0c;并将其写入csv文件进行保存 使用后置处理器BeanShell 脚本实例如下 import java.io.*;// 设置要写入的文件路径 String filePath "…

在线教育网站项目第四步:deepseek骗我, WSL2不能创建两个独立的Ubuntu,但我们能实现实例互访及外部访问

一、说明 上一章折腾了半天&#xff0c;搞出不少问题&#xff0c;今天我们在deepseek的帮助下&#xff0c;完成多个独立ubuntu24.04实例的安装&#xff0c;并完成固定ip&#xff0c;实践证明&#xff0c;deepseek不靠谱&#xff0c;浪费我2个小时时间&#xff0c;我们将在下面实…

Apache Paimon 在抖音集团多场景中的优化实践

资料来源&#xff1a;火山引擎-开发者社区 本文将基于抖音集团内部两大业务的典型实时数仓场景&#xff0c;介绍Paimon在抖音集团内部的生产实践。 作者&#xff1a;李明、苏兴、文杰 抖音集团大数据工程师 目前抖音集团内部主要使用 Lambda 架构进行实时数仓建设&#xff0c;其…

PDF Reader Pro for Mac v4.9.0 PDF编辑/批注/OCR/转换工具 支持M、Intel芯片

PDF Reader Pro 是一款用户必备的集管理、编辑、转换、阅读功能于一体的专业的全能PDF阅读专家。快速、易用、强大&#xff0c;让您出色完成 PDF 工作。 应用介绍 PDF Reader Pro&#xff0c;一款功能齐全且强大的PDF阅读和编辑软件。支持PDF阅读、批注、PDF编辑、PDF格式转换…

HTML5与CSS3新特性详解

一、HTML5新特性 1.概述 HTML5 的新增特性主要是针对于以前的不足&#xff0c;增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题&#xff0c;基本是 IE9 以上版本的浏览器才支持&#xff0c;如果不考虑兼容性问题&#xff0c;可以大量使用这些新特…

shell 脚本搭建apache

#!/bin/bash # Set Apache version to install ## author: yuan# 检查外网连接 echo "检查外网连接..." ping www.baidu.com -c 3 > /dev/null 2>&1 if [ $? -eq 0 ]; thenecho "外网通讯良好&#xff01;" elseecho "网络连接失败&#x…

Linux环境使用jmeter做性能测试

一、安装JDK&#xff0c;版本jdk1.8 1、下载压缩包到/jdk目录下解压 cd /jdk tar -zxvf jdk-8u241-linux-64.tar.gz 2、配置环境变量 在profile文件中末尾新增信息如下所示 vim /etc/profile export JAVA_HOME/usr/local/java/jdk/jdk1.8.0_221 export PATH$PATH:$JAVA_HOM…

巧用符号链接搬移C盘中的软件数据目录到其他盘

#工作记录 我们知道&#xff0c;在Windows11系统&#xff0c;有些软件是不能指定安装目录的&#xff0c;有些软件即使指定了安装目录可是在更新版本之后还是会安装到默认的C盘目录中&#xff08;比如剪映&#xff09;&#xff0c;而且每次安装某些软件之后&#xff0c;这些软件…