C++入门(06)安装QT并快速测试体验一个简单的C++GUI项目

2024-09-08 06:12

本文主要是介绍C++入门(06)安装QT并快速测试体验一个简单的C++GUI项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 清华镜像源下载
  • 2. 安装
  • 3. 开始菜单上的 QT 工具
  • 4. 打开 Qt Creator
  • 5. 简单的 GUI C++ 项目
    • 5.1 打开 Qt Creator 并创建新项目
    • 5.2 设计界面
    • 5.3 添加按钮的点击事件
    • 5.4 编译并运行项目
  • 6. 信号和槽(Signals and Slots)

这里用到了C++类与对象的很多概念

1. 清华镜像源下载

https://mirrors.tuna.tsinghua.edu.cn/qt/archive/online_installers/4.8/?C=M&O=D
在这里插入图片描述
在这里插入图片描述

2. 安装

安装的时候可以注册,填写邮箱,设置密码,会打开网页填写表单,再到邮箱里确认等等,然后就可以继续下一步

以下过程界面可能有疏漏,看看大体过程
在这里插入图片描述
开源义务,下一步
在这里插入图片描述
在这里插入图片描述
可以点选下面一个
在这里插入图片描述

这里路径可改,我默认了
选了两个tools :Desktop 和 DesignStudio
主要是没用过,没经验,也就不自定义安装了
根据字面意思,选了一个桌面开发、一个设计
暂时对Android 汽车操作系统应用程序和移动开发没有需求
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
有个界面是告知我大约5.2GB
接着是一段安装过程,根据网络情况,大约耗时20分钟在这里插入图片描述
安装完成
在这里插入图片描述

3. 开始菜单上的 QT 工具

安装完毕后,开始菜单
在这里插入图片描述

  • Qt Creator 14.0.1 (Community)
    主要的开发环境和 IDE,编写、编辑、调试和构建 Qt 应用程序

  • Qt Design Studio
    专注于 GUI 设计,设计界面,导入到 Qt Creator 中进行逻辑开发

  • Qt 6.7.2 (MinGW 11.2.0 64-bit)
    不需要直接打开,被 Qt Creator 调用的编译工具链

  • Designer 6.7.2 (MinGW 11.2.0 64-bit)
    独立的界面设计工具,对于简单的 UI 设计,使用 Qt Creator 内置的功能

  • Assistant 6.7.2 (MinGW 11.2.0 64-bit)
    查阅 Qt 的官方文档和 API 说明。

  • Linguist 6.7.2 (MinGW 11.2.0 64-bit)
    本地化工具,为 Qt 应用程序进行多语言支持

  • Qt Maintenance Tool
    Qt 的维护工具,更新或更改 Qt 安装时使用

    4. 打开 Qt Creator

Qt Creator,所有的开发、设计、调试功能都在这里集成,使用 Qt 的主要平台
点击
在这里插入图片描述
界面最底下有一行,在帮助里可以再次打开
在这里插入图片描述

5. 简单的 GUI C++ 项目

设计一个基本的窗口应用程序,放置一个按钮,点击按钮时会显示一条消息

5.1 打开 Qt Creator 并创建新项目

(1)打开 Qt Creator,在主界面上,点击 “新建项目”(或选择“文件” > “new project…”)
在这里插入图片描述
(2)在“项目”类别下,选择 “Application” > “Qt Widgets Application”,然后点击 “选择”
在这里插入图片描述
Qt Widgets Application 是 Qt 框架中的一种应用程序类型,用于开发传统的桌面图形用户界面(GUI)应用程序
每个 Widgets 就是一个控件,如按钮 (QPushButton)、文本框 (QLineEdit)、列表 (QListView)、窗口 (QMainWindow) 等
Qt Widgets 应用程序的典型结构:
Main Window (QMainWindow),主窗口,包含菜单栏、工具栏、状态栏等
各类控件(按钮、文本框)可以放置在主窗口中
当控件发生某个事件(如按钮被点击)时,它发出一个信号,槽函数可以捕捉这个信号并执行相应的代码

(3)给项目取一个名称(如 “MyFirstQtApp”),并选择项目的保存路径。点击 “下一步”
在这里插入图片描述
(4)构建系统
三个选项:qmake、CMake 和 Qbs

  • qmake
    Qt 自带的构建系统,集成良好,适合快速上手,易于配置,特别适合小型项目,快速创建和测试 GUI 应用程序。
    逐渐被 CMake 所取代,官方推荐新项目使用 CMake
  • CMake
    逐渐成为 Qt 项目推荐的构建工具。
    能够管理复杂的构建配置,广泛支持各类编译器和开发工具,跨平台,易于与第三方库集成
  • Qbs (Qt Build Suite)
    逐步被官方弃用。

这里只是想快速体验 Qt 的开发流程,选择 qmake
在这里插入图片描述
(5)Details
保持默认的类名称和基类设置, “下一步”
在这里插入图片描述
(6)Translation
这个界面是 Qt 项目设置中的 Translation File(翻译文件) 配置界面,主要为应用程序添加多语言
只是想创建一个简单的 GUI 项目,其中包含一个按钮和一个消息框,没有复杂的多语言需求,因此保持默认的 <无> 即可
在这里插入图片描述

(7)构建套件(Kit)
默认即可。
配置项目编译和运行环境的集合,编译器、Qt 版本、调试器等。它定义了如何编译和运行你的项目。每个 Kit 对应不同的开发平台和配置,比如 Windows、Linux、调试版本、发布版本等
在这里插入图片描述
Desktop Qt 6.7.2 MinGW 64-bit
当前配置的构建套件,指定了使用 Qt 6.7.2 版本和 MinGW 64 位编译器。这是一个标准的配置,适合大多数 Windows 桌面应用程序的开发。
Debug生成带调试信息的可执行文件,开发阶段用来调试代码。
Release生成优化后的可执行文件,没有调试信息,适合发布和分发应用程序
Profile性能分析的配置
对一个简单项目来说,保持默认构建套件

Python 3.12.4,Qt 支持 Python 的集成,可以用于 Qt for Python 项目,当前开发的是一个 C++ GUI 项目,不选

点击 “下一步”

(8)汇总
在这里插入图片描述

点击完成,界面如下
在这里插入图片描述

5.2 设计界面

在项目树中,找到并双击 mainwindow.ui 文件
在这里插入图片描述
打开 Qt Designer设计界面
在左侧的 Widget Box 中找到 Push Button(按钮),拖放到窗口中央
在这里插入图片描述
在右侧的 属性面板中设置按钮的 text 属性为 “Click Me”
在这里插入图片描述
在这里插入图片描述

5.3 添加按钮的点击事件

(1)选中按钮,在右侧 属性面板中找到 “objectName”,确保它的名称是 pushButton
可以更改,pushButton1,pushButton2… 或者有意义的名字,根据需要命名,C++类的对象的名称,理解为变量名,代码里引用的时候要和这里保持一致

在这里插入图片描述
Ctrl + s

(2)左侧编辑,双击 mainwindow.h,在 mainwindow.h 文件中,声明槽函数 onButtonClicked()
在这里插入图片描述

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void onButtonClicked();  // 声明槽函数private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

在这里插入图片描述
槽函数声明位置:onButtonClicked() 必须声明在 private slots: 下
确保mainwindow.cpp 文件构造函数中 connect() 调用的槽函数名与声明和实现完全一致。

(3)mainwindow.cpp 文件
在 mainwindow.cpp 中实现构造函数 MainWindow::MainWindow 和槽函数 onButtonClicked()
头文件和实现文件同步更新:如果修改了槽函数,确保同时修改 mainwindow.h 和 mainwindow.cpp 文件中的声明和实现
有注释的地方是添加的

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>  // 用于显示消息框MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 连接按钮的点击信号到槽函数 onButtonClickedconnect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::onButtonClicked);
}MainWindow::~MainWindow()
{delete ui;
}// 槽函数的实现,当按钮被点击时会调用这个函数
void MainWindow::onButtonClicked()
{// 显示一个消息框QMessageBox::information(this, "消息", "按钮被点击了!");
}

QMessageBox::information(this, “消息”, “按钮被点击了!”); 是 Qt 框架中用来显示消息框的函数调用
标题:消息
内容:按钮被点击了!
按钮:一个“OK”按钮,用户可以点击以关闭消息框
在这里插入图片描述

5.4 编译并运行项目

点击左下角的 绿色三角形(运行按钮),或按 Ctrl+R
在这里插入图片描述

Qt Creator 会编译项目并启动程序,出现一个窗口,带有一个按钮,点击按钮时,会弹出一个消息框显示 “Button Clicked!”
在这里插入图片描述

6. 信号和槽(Signals and Slots)

信号是 Qt 对象(通常是 QWidget 的子类)用来通知其他对象某些事件已经发生的机制
例如,当按钮被点击时,就会发出 clicked() 信号
槽函数用于接收信号并对信号做出响应,
槽是一个普通的 C++ 函数,可以是任何成员函数、普通函数、甚至是 lambda 表达式,并且可以是公有、保护或私有的函数

使用 connect() 函数将信号和槽连接起来

connect(信号发出者, 信号, 接收者, 槽函数);
connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::onButtonClicked);

将按钮的 clicked() 信号与 onButtonClicked() 槽函数连接,当按钮被点击时,onButtonClicked() 就会被调用

这篇关于C++入门(06)安装QT并快速测试体验一个简单的C++GUI项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147342

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat