QT 学习笔记(一)

简介: 本人直接用同学的安装包进行安装的,版本为 QT5.12 。大家可以在 CSDN 或者 B站 上看别人的安装教程,都做的很详细。

文章目录


一、QT 安装

二、为什么学 QT

三、QT 应用程序框架

1. QT Creater

2. 新建一个 QT 应用程序

3. QT 代码框架详解

3.1 main.cpp

3.2 myWidget.h

3.3 day1.pro

4. QT 基本模块

四、第一个 QT 程序

1. 准备工作

1.1 项目创建

1.2 主函数框架测试

2. 设置窗口标题

2.1 main.cpp

2.2 运行结果

3. 添加按钮

3.1 main.cpp

3.2 运行结果


由于每次代码都是在原有程序上修改,因此除了新建项目,不然一般会在学完后统一展示代码。


一、QT 安装

  • 本人直接用同学的安装包进行安装的,版本为 QT5.12 。大家可以在 CSDN 或者 B站 上看别人的安装教程,都做的很详细。


二、为什么学 QT


学习GUI编程,市场上任何一款产品几乎都带图形界面,市场上很火的 Android 、IOS 编程无非也是 GUI app 编程,GUI 编程都是差不多,学习QT 后再学习 Android、IOS,会比较轻松。由于 QT 跨平台特性,通过 QT 写的程序可以在 Android、IOS平台上运行。


  • 锻炼编程能力,GUI 编程比后台编程更能锻炼人,因为除了核心数据处理外,还需要协调界面,同时懂得前端和后台编程,才能更好地写好程序。
  • 为了更好地使用 C++ ,学习 QT 的框架(QT 是 C++ 实现的应用程序框架),很多游戏、后台服务器框架都是使用 C++ 实现。


QT 的良好封装机制使得 QT 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。QT 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。


QT 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理功能。


三、QT 应用程序框架

1. QT Creater1f23fe6f8e1f401a9f8d0769294f13b5.png

7cdb51e719334c18ad2070f1fd72c621.png


2. 新建一个 QT 应用程序


0e359717c52c474f9f7bc3f19ef6b6d9.png

407f06f6df324769b30be9047f73d84d.png


470b845e45cb472c86855f3edc767d82.png



我们一般选用 QWidget

3c57b3a85ee14e53ad893dc100267635.png

c75899ea9e234d93bef4e7f96ffd326f.png


0d785be0f2384230aa07a83e14e3ba3b.png


3. QT 代码框架详解

  • 具体解释均已注释在代码当中。

3.1 main.cpp

#include "mywidget.h"
// QApplication 是应用程序类
// QT 头文件没有 .h
// 头文件和类名一样
#include <QApplication>
int main(int argc, char *argv[])
{
   // 固定框架,有且只有一个应用程序类的对象
   QApplication a(argc, argv);
   // myWidget继承于QWidget,QWidget是一个窗口基类
   // 所以myWidget也是窗口类
   // w就是一个窗口
   myWidget w;
   // 窗口创建默认是隐藏的,需要人为显示
   w.show();
   // a.exec()让程序一直执行,等待用户操作
   return a.exec();
   }


3.2 myWidget.h

//快捷键 f4 可以跳转对应的 .c 文件。
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
class myWidget : public QWidget
{
    Q_OBJECT  // 信号与槽的时候需要
public:
    myWidget(QWidget *parent = 0);
    ~myWidget();
};
#endif // MYWIDGET_H


image.png


3.3 day1.pro

# 一个程序对应一个 .pro 文件,在 .pro 文件当中,注释是 #
# 模块
QT       += core gui
# 高于4版本,添加 QT += widgets,为了兼容 QT4
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
# 应用程序的名字
TARGET = day1
# 指定 makefile 的类型,app
TEMPLATE = app
# 源文件 .cpp 文件
SOURCES += \
        main.cpp \
        mywidget.cpp
# 头文件 .h 文件
HEADERS += \
        mywidget.h



4. QT 基本模块45579c4c47d4433ab58bfe82a7d7e8c3.png


四、第一个 QT 程序

1. 准备工作

1.1 项目创建

  • 这里需要注意:680e98b99988468aa8ef3b4314ed3dba.png



  • 后续步骤与前文相同。

3a36f99795aa4cb28fdfde4494dc17e9.png


86abaf5ac0d04dc8b51712632334f6d4.png


  • 后续添加 C++ 源文件和头文件步骤与 VS2022 相同,在此不过多叙述,需要注意源文件是 .cpp,头文件是 .h 。

1.2 主函数框架测试

29fc25a1e53041bcad3c36ae4618d7d5.png


2. 设置窗口标题

2.1 main.cpp

#include <QApplication>
#include <QWidget> //窗口空间基类
int main(int argc,char **argv)
{
    QApplication app(argc,argv);
    QWidget w;
    w.setWindowTitle("主要看气质");  //设置标题
    w.show();
    return app.exec();
}

2.2 运行结果

6da3c66a12634739a9214e631bd42496.png


3. 添加按钮

3.1 main.cpp

  • 知识点和注意事项以注释的方式在代码当中。
3. 添加按钮
3.1 main.cpp
知识点和注意事项以注释的方式在代码当中。
#include


3.2 运行结果9ee4f574ec0446ab905b681360c1a300.png

相关文章
|
1月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
206 4
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
|
1月前
|
开发者
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
120 4
|
1月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
268 4
|
1月前
|
数据安全/隐私保护
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
159 4
|
1月前
|
搜索推荐 C++
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
32 4
|
1月前
|
API UED
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
127 4
|
1月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
72 3
|
1月前
|
数据可视化
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
40 3
|
1月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
169 3
|
1月前
【Qt 学习笔记】Qt窗口 | 对话框 | Qt对话框的分类及介绍
【Qt 学习笔记】Qt窗口 | 对话框 | Qt对话框的分类及介绍
69 3