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

相关文章

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.