【QT】1.QT初识(背景介绍、搭建开发环境、Qt Creator、程序、项目文件解析、编程注意事项)

【QT】1.QT初识

  • [一、Qt 背景介绍](#一、Qt 背景介绍)
    • [1.1 什么是 Qt](#1.1 什么是 Qt)
    • [1.2 Qt 的发展史](#1.2 Qt 的发展史)
    • [1.3 Qt 支持的平台](#1.3 Qt 支持的平台)
    • [1.4 Qt 版本](#1.4 Qt 版本)
    • [1.5 Qt 的优点](#1.5 Qt 的优点)
    • [1.6 Qt 的应用场景](#1.6 Qt 的应用场景)
    • [1.7 Qt 的成功案例](#1.7 Qt 的成功案例)
  • [二、搭建 Qt 开发环境](#二、搭建 Qt 开发环境)
    • [2.1 Qt 的开发工具概述](#2.1 Qt 的开发工具概述)
    • [2.2 Qt SDK 的下载和安装](#2.2 Qt SDK 的下载和安装)
    • [2.3 Qt 环境变量配置](#2.3 Qt 环境变量配置)
    • [2.4 验证 Qt SDK 安装是否成功](#2.4 验证 Qt SDK 安装是否成功)
  • [三、认识 Qt Creator](#三、认识 Qt Creator)
  • 四、项目文件解析
    • [5.1 .pro 文件解析(QT项目的工程文件)](#5.1 .pro 文件解析(QT项目的工程文件))
    • [5.2 main.cpp文件解析](#5.2 main.cpp文件解析)
    • [5.3 widget.h 文件解析(Widget 类的声明)](#5.3 widget.h 文件解析(Widget 类的声明))
    • [5.4 widget.cpp文件解析](#5.4 widget.cpp文件解析)
    • [5.5 widget.ui 文件解析](#5.5 widget.ui 文件解析)
    • [5.6 构建QT项目中的中间文件](#5.6 构建QT项目中的中间文件)
  • [五、Qt Hello World 程序](#五、Qt Hello World 程序)
    • [5.1 使用 "标签" 实现](#5.1 使用 “标签” 实现)
      • [5.1.1 纯代码方式实现](#5.1.1 纯代码方式实现)
      • [5.1.2 可视化操作实现](#5.1.2 可视化操作实现)
    • [5.2 使用 "编辑框" 实现](#5.2 使用 “编辑框” 实现)
      • [5.2.1 纯代码方式实现](#5.2.1 纯代码方式实现)
      • [5.2.2 可视化操作实现](#5.2.2 可视化操作实现)
    • [5.3 使用 "按钮" 实现](#5.3 使用 “按钮” 实现)
      • [5.3.1 纯代码方式实现](#5.3.1 纯代码方式实现)
      • [5.3.2 可视化操作实现](#5.3.2 可视化操作实现)
  • [六、Qt 编程注意事项](#六、Qt 编程注意事项)
    • [6.1 Qt 中的命名规范](#6.1 Qt 中的命名规范)
    • [6.2 Qt Creator 中的快捷键](#6.2 Qt Creator 中的快捷键)
    • [6.3 使用帮助文档](#6.3 使用帮助文档)
      • [(1)光标放到要查询的类名 / 方法名上,直接按 F1。](#(1)光标放到要查询的类名 / 方法名上,直接按 F1。)
      • [(2)Qt Creator 左侧边栏中直接用鼠标单击 "帮助" 按钮。](#(2)Qt Creator 左侧边栏中直接用鼠标单击 “帮助” 按钮。)
      • [(3)找到 Qt Creator 的安装路径,在 "bin" 文件夹下找到 assistant.exe,双击打开。](#(3)找到 Qt Creator 的安装路径,在 "bin" 文件夹下找到 assistant.exe,双击打开。)
    • [6.4 对象树](#6.4 对象树)
      • [(1) Qt 对象树机制详解:自动内存管理背后的秘密](#(1) Qt 对象树机制详解:自动内存管理背后的秘密)
      • [(2) QT对象树 图示](#(2) QT对象树 图示)
      • [(3) 如何验证对象树机制?](#(3) 如何验证对象树机制?)
    • [6.5 ​​​​​​​Qt 窗口坐标体系](#6.5 Qt 窗口坐标体系)
    • [6.6 小结](#6.6 小结)

一、Qt 背景介绍

1.1 什么是 Qt


1.2 Qt 的发展史

1.3 Qt 支持的平台

1.4 Qt 版本

1.5 Qt 的优点

1.6 Qt 的应用场景

1.7 Qt 的成功案例

二、搭建 Qt 开发环境

2.1 Qt 的开发工具概述

说是安装三个东西,其实只要安装一个QtSDK,另外两个也就都有了.

2.2 Qt SDK 的下载和安装

2.3 Qt 环境变量配置

2.4 验证 Qt SDK 安装是否成功


三、认识 Qt Creator

3.1 Qt Creator 概览

3.2 使用 Qt Creator 新建项目

(1)新建项目

(2)选择项目模板

(3)选择项目路径

(4)选择构建系统

(5)填写类信息设置界面

(6)选择语言和翻译文件

由于我们暂时不考虑国际化问题,直接点击 "下一步" 即可。

(7)选择 Qt 套件

(8)选择版本控制系统

(9)最终效果

通过上述 8 个步骤,完成了项目的创建。项目创建完成之后,Qt Creator 会直接进入代码编辑模式,可以看到类似下图界面:

3.3 认识 Qt Creator 界面

(1)左边栏

(2)代码编辑区

(3)UI 设计界面

(4)构建区

上图是针对项目只用户到单一 Qt 套件的,如果之前配置了多个 Qt 套件,看到的类似下图:

四、项目文件解析

5.1 .pro 文件解析(QT项目的工程文件)

5.2 main.cpp文件解析

使用 Qt Creator 新建任意工程之后,main.cpp 文件中都会自动生成如下代码:

5.3 widget.h 文件解析(Widget 类的声明)

5.4 widget.cpp文件解析

5.5 widget.ui 文件解析


双击" widget.ui " 出现下面的界面:

此时再点击上图左侧边栏的 "编辑" 按钮,那么此时显示的内容就是 .ui 文件的本体:

5.6 构建QT项目中的中间文件


临时文件中的 ui_widget.h:

ui_widget.h 具体代码如左下:


五、Qt Hello World 程序

5.1 使用 "标签" 实现

5.1.1 纯代码方式实现



实现效果:

5.1.2 可视化操作实现

B. 拖拽 "标签" 至 UI 设计界面中,并双击修改标签内容

进一步的 qmake 就会在编译项目时,基于这个内容生成一段 C++ 代码,通过这个 C++ 代码构建出界面内容。

5.2 使用 "编辑框" 实现

5.2.1 纯代码方式实现

5.2.2 可视化操作实现

5.3 使用 "按钮" 实现

5.3.1 纯代码方式实现

对于纯代码版本,按钮对象是我们自己 new 的,为了保证其他函数中能够访问到这个变量,就需要把按钮对象设定为 Widget 类的成员变量。

5.3.2 可视化操作实现

通过图形化界面实现下面的代码:(信号槽)

这里的按钮对象不需要我们自己 new,new 对象这个操作已经是被 Qt 自动生成了,而且这个按钮对象已经作为 ui 对象里的一个成员变量,也无需作为 Widget 的成员。


六、Qt 编程注意事项

6.1 Qt 中的命名规范

6.2 Qt Creator 中的快捷键

6.3 使用帮助文档

打开帮助文档有三种方式,实际编程中使用哪种都可以。

(1)光标放到要查询的类名 / 方法名上,直接按 F1。

(2)Qt Creator 左侧边栏中直接用鼠标单击 "帮助" 按钮。

(3)找到 Qt Creator 的安装路径,在 "bin" 文件夹下找到 assistant.exe,双击打开。

6.4 对象树

(1) Qt 对象树机制详解:自动内存管理背后的秘密


(2) QT对象树 图示



(3) 如何验证对象树机制?

可以重写析构函数来观察销毁顺序:

6.5 ​​​​​​​Qt 窗口坐标体系

6.6 小结

相关推荐
xcyxiner4 小时前
DicomViewer24 修复编译bug(window test 失败)
前端·qt
sycmancia10 小时前
Qml——Rectangle元素
qt
sycmancia13 小时前
Qml——Item元素
qt
励志不掉头发的内向程序员14 小时前
【从零写一个CAD 04】中键拖动平移:抓住一个点,让它一直待在鼠标底下
开发语言·c++·qt·学习·系统架构·计算机外设
zhanghaha13141 天前
Qt 中的类是什么?保姆级详解(新手版)
qt
看看我呀看看我1 天前
基于Qt的虚拟键盘
c++·qt·qt5·qt6.3
kaixin_learn_qt_ing1 天前
Qt抽屉窗体实现demo
开发语言·qt
huanbailu1 天前
Qt 跨线程信号槽:connect 返回 true 但槽函数不执行的坑
开发语言·c++·qt·信号槽·跨线程·元类型
Quz2 天前
QML SplitView:可拖拽分隔面板与自定义 Handle
qt
Quz2 天前
QML SplitView 进阶:嵌套布局与状态持久化
qt