Qt Creator快速入门(第3版)+源码 pdf

Qt Creator快速入门(第3版)+源码

内容简介

本书是基于QtCreator集成开发环境的入门书籍,详细介绍了QtCreator开发环境的使用和Qt基本知识点的应用。本书内容主要包括Qt的基本应用,以及Qt在图形动画、影音媒体、数据处理和网络通信方面的应用内容。与第2版相比,本书使用Z新的Qt5.6.1和QtCreator4.0.1进行了全书修订,主要重写了3D绘图、影音媒体、WebKit等章节;添加了Qt5框架介绍、将Qt4代码迁移到Qt5等相关附录,从而帮助初学者快速入门Qt5编程。

本书内容全面、实用,讲解通俗易懂,适合没有Qt编程基础、有Qt编程基础但是没有形成知识框架以及想学习Qt某一方面应用的读者,也适合想从Qt4跨入Qt5编程的读者。对于想学习QML及QtQuick编程的读者,可以学习《Qt5 编程入门》一书;想进一步学习Qt开发实例的读者,可以学习《Qt及QtQuick开发实战精解》一书。

作者简介

目录

第1篇 基本应用篇

第1章 QtCreator简介………………………………………………………………… 2

1.1 QtCreator的下载与安装……………………………………………………… 2

1.2 QtCreator环境介绍…………………………………………………………… 3

1.2.1 运行一个示例程序………………………………………………………… 6

1.2.2 帮助模式…………………………………………………………………… 8

1.3 Qt工具简介…………………………………………………………………… 10

1.3.1 QtAssistant(Qt助手)…………………………………………………… 10

1.3.2 QtDesigner(Qt设计师)………………………………………………… 11

1.3.3 QtLinguist(Qt语言家) ………………………………………………… 11

1.4 小 结…………………………………………………………………………… 12

第2章 HelloWorld …………………………………………………………………… 13

2.1 编写HelloWorld程序………………………………………………………… 13

2.1.1 新建QtWidgets应用…………………………………………………… 13

2.1.2 文件说明与界面设计……………………………………………………… 16

2.2 程序的运行与发布……………………………………………………………… 18

2.2.1 程序的运行………………………………………………………………… 18

2.2.2 程序的发布………………………………………………………………… 21

2.2.3 设置应用程序图标………………………………………………………… 23

2.3 helloworld程序源码与编译过程详解………………………………………… 24

2.3.1 纯代码编写程序与命令行编译…………………………………………… 25

2.3.2 使用.ui文件……………………………………………………………… 31

2.3.3 自定义C++类…………………………………………………………… 35

2.3.4 使用Qt设计师界面类…………………………………………………… 38

2.4 项目模式和项目文件介绍……………………………………………………… 39

2.4.1 项目模式…………………………………………………………………… 39

2.4.2 项目文件…………………………………………………………………… 40

2.4.3 关于本书源码的使用……………………………………………………… 41

2.5 小 结…………………………………………………………………………… 41

第3章 窗口部件……………………………………………………………………… 42

3.1 基础窗口部件QWidget ……………………………………………………… 42

3.1.1 窗口、子部件以及窗口类型……………………………………………… 43

3.1.2 窗口几何布局……………………………………………………………… 46

3.1.3 程序调试…………………………………………………………………… 46

3.2 对话框QDialog………………………………………………………………… 50

3.2.1 模态和非模态对话框……………………………………………………… 50

3.2.2 多窗口切换………………………………………………………………… 51

3.2.3 标准对话框………………………………………………………………… 56

3.3 其他窗口部件…………………………………………………………………… 63

3.3.1 QFrame类族……………………………………………………………… 63

3.3.2 按钮部件…………………………………………………………………… 67

3.3.3 QLineEdit ………………………………………………………………… 68

3.3.4 QAbstractSpinBox ……………………………………………………… 71

3.3.5 QAbstractSlider ………………………………………………………… 72

3.4 小 结…………………………………………………………………………… 72

第4章 布局管理……………………………………………………………………… 73

4.1 布局管理系统…………………………………………………………………… 73

4.1.1 布局管理器………………………………………………………………… 74

4.1.2 设置部件大小……………………………………………………………… 77

4.1.3 可扩展窗口………………………………………………………………… 80

4.1.4 分裂器(QSplitter)………………………………………………………… 81

4.2 设置伙伴(buddy)……………………………………………………………… 82

4.3 设置Tab键顺序……………………………………………………………… 83

4.4 QtCreator中的定位器………………………………………………………… 83

4.5 小 结…………………………………………………………………………… 84

第5章 应用程序主窗口……………………………………………………………… 85

5.1 主窗口框架……………………………………………………………………… 85

5.1.1 Qt资源系统、菜单栏和工具栏…………………………………………… 86

5.1.2 中心部件…………………………………………………………………… 91

5.1.3 Dock部件………………………………………………………………… 92

5.1.4 状态栏……………………………………………………………………… 93

5.1.5 自定义菜单………………………………………………………………… 93

5.2 富文本处理……………………………………………………………………… 96

5.2.1 富文本文档结构…………………………………………………………… 96

5.2.2 文本块……………………………………………………………………… 98

5.2.3 表格、列表与图片………………………………………………………… 101

5.2.4 查找功能………………………………………………………………… 102

5.2.5 语法高亮与HTML …………………………………………………… 104

5.3 拖放操作……………………………………………………………………… 106

5.3.1 使用拖放打开文件……………………………………………………… 106

5.3.2 自定义拖放操作………………………………………………………… 107

5.4 打印文档……………………………………………………………………… 111

5.5 小 结………………………………………………………………………… 114

第6章 事件系统……………………………………………………………………… 115

6.1 Qt中的事件…………………………………………………………………… 115

6.1.1 事件的处理……………………………………………………………… 116

6.1.2 事件的传递……………………………………………………………… 116

6.2 鼠标事件和滚轮事件………………………………………………………… 120

6.3 键盘事件……………………………………………………………………… 122

6.4 定时器事件与随机数………………………………………………………… 126

6.5 事件过滤器与事件的发送…………………………………………………… 128

6.6 小 结………………………………………………………………………… 130

第7章 Qt对象模型与容器类……………………………………………………… 131

7.1 对象模型……………………………………………………………………… 131

7.1.1 信号和槽………………………………………………………………… 132

7.1.2 属性系统………………………………………………………………… 139

7.1.3 对象树与拥有权………………………………………………………… 142

7.1.4 元对象系统……………………………………………………………… 144

7.2 容器类………………………………………………………………………… 145

7.2.1 Qt的容器类介绍………………………………………………………… 146

7.2.2 遍历容器………………………………………………………………… 150

7.2.3 通用算法………………………………………………………………… 156

7.2.4 QString ………………………………………………………………… 158

7.2.5 QByteArray和QVariant ……………………………………………… 163

7.3 正则表达式…………………………………………………………………… 165

7.3.1 正则表达式介绍………………………………………………………… 165

7.3.2 正则表达式组成元素…………………………………………………… 167

7.3.3 文本捕获………………………………………………………………… 170

7.3.4 新的QRegularExpression类…………………………………………… 171

7.4 小 结………………………………………………………………………… 173

第8章 界面外观……………………………………………………………………… 174

8.1 Qt风格………………………………………………………………………… 174

8.2 Qt样式表……………………………………………………………………… 177

8.2.1 Qt样式表介绍…………………………………………………………… 177

8.2.2 Qt样式表语法…………………………………………………………… 178

8.2.3 自定义部件外观与换肤………………………………………………… 181

8.3 特殊效果窗体………………………………………………………………… 185

8.3.1 不规则窗体……………………………………………………………… 185

8.3.2 透明窗体………………………………………………………………… 186

8.3.3 实现Windows7毛玻璃效果…………………………………………… 189

8.4 小 结………………………………………………………………………… 190

第9章 国际化、帮助系统和Qt插件……………………………………………… 191

9.1 国际化………………………………………………………………………… 191

9.1.1 使用QtLinguist翻译应用程序……………………………………… 191

9.1.2 程序翻译中的相关问题………………………………………………… 196

9.2 帮助系统……………………………………………………………………… 199

9.2.1 简单的帮助提示………………………………………………………… 199

9.2.2 定制QtAssistant ……………………………………………………… 199

9.3 创建Qt插件………………………………………………………………… 207

9.3.1 在设计模式提升窗口部件……………………………………………… 207

9.3.2 创建应用程序插件……………………………………………………… 208

9.3.3 创建QtDesigner自定义部件………………………………………… 212

9.4 小 结………………………………………………………………………… 214

第2篇 图形动画篇

第10章 2D 绘图……………………………………………………………………… 216

10.1 基本绘制和填充……………………………………………………………… 216

10.1.1 基本图形的绘制和填充………………………………………………… 217

10.1.2 渐变填充………………………………………………………………… 222

10.2 坐标系统……………………………………………………………………… 225

10.2.1 抗锯齿渲染……………………………………………………………… 226

10.2.2 坐标变换………………………………………………………………… 228

10.3 其他绘制……………………………………………………………………… 235

10.3.1 绘制文字………………………………………………………………… 235

10.3.2 绘制路径………………………………………………………………… 236

10.3.3 绘制图像………………………………………………………………… 239

10.3.4 复合模式………………………………………………………………… 244

10.4 双缓冲绘图…………………………………………………………………… 246

10.5 绘图中的其他问题…………………………………………………………… 248

10.6 小 结………………………………………………………………………… 250

第11章 图形视图、动画和状态机框架……………………………………………… 251

11.1 图形视图框架的结构………………………………………………………… 251

11.1.1 场 景…………………………………………………………………… 252

11.1.2 视 图…………………………………………………………………… 253

11.1.3 图形项…………………………………………………………………… 255

11.2 图形视图框架的坐标系统和事件处理……………………………………… 257

11.2.1 坐标系统………………………………………………………………… 257

11.2.2 事件处理与传播………………………………………………………… 262

11.3 图形视图框架的其他特性…………………………………………………… 267

11.3.1 图形效果………………………………………………………………… 267

11.3.2 动画、碰撞检测和图形项组…………………………………………… 268

11.3.3 打印和使用OpenGL进行渲染……………………………………… 271

11.3.4 窗口部件、布局和内嵌部件…………………………………………… 272

11.4 动画框架……………………………………………………………………… 274

11.4.1 实现属性动画…………………………………………………………… 275

11.4.2 使用缓和曲线…………………………………………………………… 276

11.4.3 动画组…………………………………………………………………… 276

11.4.4 在图形视图框架中使用动画…………………………………………… 278

11.5 状态机框架…………………………………………………………………… 280

11.5.1 创建状态机……………………………………………………………… 280

11.5.2 在状态机中使用动画…………………………………………………… 281

11.5.3 状态机框架的其他特性………………………………………………… 283

11.6 小 结………………………………………………………………………… 290

第12章 3D 绘图……………………………………………………………………… 291

12.1 使用OpenGL绘制图形介绍……………………………………………… 291

12.2 绘制多边形…………………………………………………………………… 295

12.2.1 使用顶点数组…………………………………………………………… 295

12.2.2 使用缓存………………………………………………………………… 297

12.3 绘制彩色3D图形…………………………………………………………… 297

12.3.1 为图形设置顶点颜色…………………………………………………… 298

12.3.2 实现3D效果…………………………………………………………… 299

12.4 使用纹理贴图………………………………………………………………… 300

12.5 小 结………………………………………………………………………… 303

第3篇 影音媒体篇

第13章 音视频播放………………………………………………………………… 305

第14章 相机和音频录制…………………………………………………………… 322

第4篇 数据处理篇

第15章 文件、目录和输入/输出…………………………………………………… 336

第16章 模型/视图编程……………………………………………………………… 349

第17章 数据库和XML …………………………………………………………… 380

第5篇 网络通信篇

第18章 网络编程…………………………………………………………………… 413

第19章 进程和线程………………………………………………………………… 446

第20章 QtWebEngine ……………………………………………………………… 465

附录A Qt5简介…………………………………………………………………… 477

感悟与笔记

信号和槽

GUI 程序除了要绘制控件,还要响应系统和用户事件,例如重绘、绘制完成、点击鼠标、敲击键盘等。当事件发生时,UI 会产生相应的变化,让用户直观地看到。 大部分编程(例如Win SDK、Web前端)中使用回调函数来响应事件,而 Qt 却独创了信号和槽机制。所谓回调函数,就是程序员提前定义一个函数,当事件发生时就调用该函数。 信号和槽是Qt的核心,它让两个互不相干的对象连接起来,当一个对象的状态改变时,可以通知另一个对象。 我们先通过例子来演示一下信号和槽:

#include "mainwindow.h"
#include <QApplication>
#include <QMainWindow>
#include <QLabel>
#include <QPushButton>
#include <QLineEdit>
 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QMainWindow w;
    w.setWindowTitle("微浪游戏");
    w.resize(325, 120);
 
    QLineEdit lineEdit(&w);
    lineEdit.setGeometry(30, 20, 180, 36);
    lineEdit.setPlaceholderText("请输入文本");
 
    QPushButton btn("取消", &w);
    btn.setGeometry(220, 20, 70, 36);
 
    QLabel label(&w);
    label.setGeometry(30, 70, 250, 30);
 
    //连接clicke()信号和quit()槽
    QObject::connect(&btn, SIGNAL(clicked()), &app, SLOT(quit()));
    //连接textChanged()信号和setText()槽
    QObject::connect(&lineEdit, SIGNAL(textChanged(QString)), &label, SLOT(setText(QString)));
 
    w.show();
    return app.exec();
}

会员免费下载

链接:https://pan.baidu.com/s/195vucKMh98kn4-HuVxEPAw

提取码: ****** 查看

¥69/年 开通VIP会员

成为本站VIP会员即可无限下载。 请先点击百度网盘,看资源是否还在,不在请点击链接通知站长补资源。

资源标签点击标签可查看对应分类的资源

C++C语言

资源推荐

免费 图解数据结构:使用Java

C++ 程序设计语言:第4部分 标准库(原书第4版)

C++编程思想(两卷合订本)

CSS世界

JavaScript DOM编程艺术(第2版)

C++ Primer Plus(第6版) 中文版

Vue.js快速入门

Java编程思想(第4版) [thinking in java]

Copyright © 2021-2022 知识猫. All Rights Reserved.