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#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

Win安装MySQL8全过程

《Win安装MySQL8全过程》:本文主要介绍Win安装MySQL8全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Win安装mysql81、下载MySQL2、解压文件3、新建文件夹data,用于保存数据库数据文件4、在mysql根目录下新建文件my.ini

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登