面向具有一定C/C++基础的Qt初学者
Qt是一种跨操作系统平台的C++语言开发工具,集成了丰富的界面设计窗口部件和系统功能模块,它具有“一次编写,随处编译运行”的特点,为广大软件开发者所喜爱。 本书采用循序渐进、由浅入深的编撰方法,通过大量的示例介绍了Qt的窗口、信号和槽、键盘和鼠标、窗口部件、对话框、文件与打印、多文档窗口和切分窗口、2D与3D绘图、进程和线程、网络、数据库和简单网络管理SNMP等内容的软件开发设计技术。 本书适合具有C或C++语言基础的软件开发人员、中高等学校师生和工程技术人员使用。
编者2015年4月于北京第1章开始Qt的第一个程序1
1.1认识Qt1
1.2建立Qt的工程项目3
1.3了解Qt生成的工程文件6
1.4了解Qt的程序结构10
第2章窗口13
2.1主窗口13
2.1.1主窗口的框架13
2.1.2主窗口的标题14
2.1.3主窗口的图标16
2.1.4主窗口的基本操作18
2.2菜单19
2.2.1设计菜单19
2.2.2编写菜单代码22
2.2.3弹出式菜单23
2.3工具条24
2.3.1设计工具条24
2.3.2编写工具条代码25
2.3.3在工具条添加部件25
2.3.4工具条窗口27
2.4状态条29
2.4.1在状态条显示信息29
2.4.2在状态条添加部件29
2.5系统拖盘图标30〖1〗Qt编程快速入门〖1〗目录第3章信号和槽33
3.1基本概念33
3.2在QtDesigner中建立信号和槽34
3.3自定义信号和槽36
第4章键盘和鼠标的操作41
4.1键盘和鼠标的类41
4.2键盘事件的响应41
4.3鼠标事件的响应43
第5章窗口部件44
5.1按钮44
5.1.1按钮的种类44
5.1.2按钮的设置45
5.1.3按钮的编码实现47
5.2输入窗口部件48
5.2.1设计输入窗口48
5.2.2值的设置50
5.2.3值的读取52
5.2.4值的输入检验52
5.3显示窗口部件55
5.3.1设计显示窗口55
5.3.2值的设置和读取56
5.4浏览器56
5.4.1文本浏览器56
5.4.2图像浏览器58
5.4.3Web浏览器59
5.5基本布局61
5.5.1布局的设计62
5.5.2布局的编码实现63
5.6项的显示部件63
5.6.1设计项显示部件64
5.6.2编写项的代码65
5.6.3在项中加入窗口部件68
5.6.4在项中加入弹出菜单68
5.7列项的显示视图69
5.7.1文件系统模型70
5.7.2字符串列表模型71
5.7.3标准项模型72
5.7.4委托的建立73
5.8容器部件78
5.9自定义窗口部件81
第6章对话框86
6.1使用内置标准对话框86
6.1.1颜色对话框86
6.1.2文件对话框87
6.1.3字体对话框88
6.1.4输入对话框89
6.1.5消息对话框90
6.1.6页面设置对话框91
6.1.7打印对话框92
6.1.8打印预览对话框92
6.1.9进度显示对话框94
6.2内置标准对话框中的文字替换94
6.3建立自己的对话框96
第7章文件与打印100
7.1文件100
7.1.1读取格式化文本100
7.1.2保存文本文件101
7.1.3读取二进制文件102
7.1.4使用结构104
7.1.5读取XML文件105
7.2打印110
7.2.1打印文本文件110
7.2.2程序打印控制112
7.2.3打印图像113第8章多文档界面与切分窗口115
8.1多文档界面115
8.2切分窗口120
第9章绘图123
9.12D绘图123
9.1.1绘图的程序框架123
9.1.2绘制图形123
9.1.3在内存中绘制图形127
9.23D绘图129
9.2.1从OpenGL到Qt129
9.2.2使用QGLWidget130
9.2.3使用贴图134
第10章进程与线程136
10.1进程136
10.1.1进程的启动136
10.1.2进程的关闭137
10.1.3与进程通信137
10.2线程139
10.2.1线程的创建与启动139
10.2.2线程间的同步操作141
10.2.3线程综合例子143
10.3自定义函数库147
10.3.1动态链接库147
10.3.2静态链接库151
10.4共享内存152
第11章网络154
11.1获取网络信息154
11.1.1获取主机IP地址154
11.1.2获取主机IP地址和子网掩码156
11.1.3获取主机MAC地址157
11.2UDP通信158
11.2.1基于主窗口的实现159
11.2.2基于线程的实现162
11.3TCP通信166
第12章数据库172
12.1Qt数据库基础172
12.1.1Qt数据库的类库结构172
12.1.2HelloQtDatabase173
12.2连接数据库175
12.3数据库操作177
12.3.1执行SQL语句177
12.3.2使用占位符177
12.3.3数据检索178
12.3.4读取字段名179
12.3.5自定义数据模型179
12.4SQL数据模型180
12.4.1使用QSqlTableModel181
12.4.2使用QSqlRelationalTableModel183
第13章简单网络管理SNMP185
13.1简单网络管理协议185
13.1.1基本概念185
13.1.2使用NetSNMP软件包187
13.2Qt开发管理站187
第14章字符串、列表与时间类199
14.1QString类199
14.1.1创建字符串199
14.1.2格式化输出字符串200
14.1.3类型转换201
14.1.4字符串操作202
14.2QList类203
14.2.1定义类型列表203
14.2.2列表的操作204
14.3日期、时间和定时器类204
14.3.1QDate类204
14.3.2QTime类205
14.3.3QDateTime类206
14.3.4QTimer类206
参考文献208
1.1软件可信性2
1.2全开发生存周期的软件可信性评估3
1.3本书的组织与结构4
第2章软件与软件质量6
2.1概述6
2.2软件失效造成的灾难6
2.3软件与软件工程7
2.4软件质量评价9
2.5软件质量模型10
2.5.1Beohm质量模型11
2.5.2McCall质量模型12
2.5.3ISO9126质量模型12
2.5.4GB/T16260质量模型13
2.5.5ISO25010质量模型14
2.6本章小结15
第3章软件开发生存周期17
3.1概述17
3.2软件生存周期过程17
3.3软件生存周期模型20
3.3.1瀑布模型20
3.3.2快速原型开发模型21
3.3.3增量开发模型22
3.3.4极限编程模型23
3.3.5螺旋模型23
3.4软件开发过程24
3.4.1软件需求分析24
3.4.2软件设计27
3.4.3软件编码实现29
〖1〗软件可信性定量评估:模型、方法与实施〖1〗目录3.4.4软件测试31
3.5本章小结33
第4章软件可信性评估模型35
4.1概述35
4.2模型结构35
4.3可信属性与可信子属性36
4.4可信度量与度量指标39
4.5本章小结40
第5章需求分析阶段的可信度量42
5.1需求分析阶段度量策略42
5.2在需求分析阶段度量软件可用性42
5.2.1适合性的度量42
5.2.2准确性的度量43
5.2.3互操作性的度量44
5.2.4易操作性的度量45
5.2.5依从性的度量46
5.3在需求分析阶段度量实时性46
5.3.1处理及时性的度量46
5.3.2实时稳定性的度量47
5.4在需求分析阶段度量可靠性47
5.4.1成熟性的度量48
5.4.2容错性的度量48
5.4.3持续性的度量49
5.5在需求分析阶段度量安全性49
5.5.1安全保密性的度量49
5.5.2完整性的度量50
5.5.3防危性的度量51
5.6在需求分析阶段度量可生存性51
5.6.1易恢复性的度量51
5.6.2健壮性的度量52
5.7在需求分析阶段度量效能性52
5.7.1时间有效性的度量53
5.7.2资源有效性的度量53
5.8在需求分析阶段度量可维护性54
5.8.1易分析性的度量55
5.8.2易改变性的度量55
5.8.3易测试性的度量56
5.8.4易学性的度量56
5.8.5易替换性的度量57
5.9需求分析阶段的过程度量58
5.10本章小结61
第6章软件设计阶段的可信度量62
6.1软件设计阶段度量策略62
6.2在设计阶段度量软件可用性62
6.2.1适合性的度量63
6.2.2准确性的度量65
6.2.3互操作性的度量66
6.2.4易操作性的度量67
6.2.5依从性的度量68
6.3在设计阶段度量实时性68
6.3.1处理及时性的度量68
6.3.2实时稳定性的度量69
6.4在设计阶段度量可靠性69
6.4.1成熟性的度量70
6.4.2容错性的度量70
6.4.3持续性的度量70
6.5在设计阶段度量安全性71
6.5.1安全保密性的度量72
6.5.2完整性的度量73
6.5.3防危性的度量73
6.6在设计阶段度量可生存性74
6.6.1易恢复性的度量74
6.6.2健壮性的度量74
6.7在设计阶段度量效能性75
6.7.1时间有效性的度量75
6.7.2资源有效性的度量76
6.8在设计阶段度量可维护性77
6.8.1易分析性的度量77
6.8.2易改变性的度量78
6.8.3易测试性的度量79
6.8.4易学性的度量79
6.8.5易替换性的度量80
6.9设计阶段的过程度量81
6.10本章小结84
第7章编码实现阶段的可信度量85
7.1编码实现阶段度量策略85
7.2在编码实现阶段度量软件可用性85
7.2.1适合性的度量86
7.2.2准确性的度量87
7.2.3互操作性的度量87
7.2.4易操作性的度量88
7.2.5依从性的度量89
7.3在编码实现阶段度量实时性90
7.3.1处理及时性的度量90
7.3.2实时稳定性的度量91
7.4在编码实现阶段度量可靠性91
7.4.1成熟性的度量91
7.4.2容错性的度量92
7.4.3持续性的度量93
7.5在编码实现阶段度量安全性93
7.5.1安全保密性的度量93
7.5.2完整性的度量94
7.5.3防危性的度量95
7.6在编码实现阶段度量可生存性96
7.6.1易恢复性的度量96
7.6.2健壮性的度量97
7.7在编码实现阶段度量效能性97
7.7.1时间有效性的度量97
7.7.2资源有效性的度量98
7.8在编码实现阶段度量可维护性99
7.8.1易分析性的度量99
7.8.2易改变性的度量100
7.8.3易测试性的度量101
7.8.4易学性的度量101
7.8.5易替换性的度量102
7.9编码实现阶段的过程度量103
7.10本章小结106
第8章软件测试阶段的可信度量107
8.1软件测试阶段度量策略107
8.2在软件测试阶段度量软件可用性107
8.2.1适合性的度量107
8.2.2准确性的度量109
8.2.3互操作性的度量110
8.2.4易操作性的度量110
8.2.5依从性的度量111
8.3在软件测试阶段度量实时性112
8.3.1处理及时性的度量112
8.3.2实时稳定性的度量113
8.4在软件测试阶段度量可靠性114
8.4.1成熟性的度量114
8.4.2容错性的度量114
8.4.3持续性的度量116
8.5在软件测试阶段度量安全性117
8.5.1安全保密性的度量117
8.5.2完整性的度量118
8.5.3防危性的度量118
8.6在软件测试阶段度量可生存性120
8.6.1易恢复性的度量120
8.6.2健壮性的度量121
8.7在软件测试阶段度量效能性122
8.7.1时间有效性的度量122
8.7.2资源有效性的度量123
8.8在软件测试阶段度量可维护性125
8.8.1易分析性的度量125
8.8.2易改变性的度量125
8.8.3易测试性的度量127
8.8.4易学性的度量128
8.8.5易替换性的度量129
8.9软件测试阶段的过程度量130
8.10本章小结132
第9章软件可信性评估方法134
9.1概述134
9.2一般性数学模型135
9.3知识发现与权值获取136
9.3.1知识发现基础136
9.3.2基于知识发现的权值获取137
9.4效用统一与数据处理140
9.4.1效用理论基础140
9.4.2定性指标度量值预处理141
9.4.3定量指标度量值预处理142
9.4.4效用的统一142
9.5证据理论与数据融合142
9.5.1证据理论基础142
9.5.2Dempster合成规则143
9.5.3基于层次模型的融合算法144
9.6其他推理技术147
9.6.1不确定性推理147
9.6.2概率推理148
9.6.3模糊推理150
9.7本章小结153
第10章软件可信性评估指南156
10.1概述156
10.2对待评估软件的要求156
10.3评估实施指南157
10.4可信性评估软件TREAT159
10.5数据处理软件(DPS)评估实例160
10.6可信性评估文档168
10.7本章小结169