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 GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa