目录 第1章初识Qt框架1 1.1Qt 简介1 1.1.1Qt历史及应用1 1.1.2Qt版本与特点2 1.2开发环境搭建3 1.2.1下载与安装3 1.2.2集成开发工具6 1.2.3其他辅助工具17 1.3程序设计方式20 1.3.1可视化设计20 1.3.2代码化设计22 1.3.3混合式设计25 1.4项目结构分析26 1.4.1项目文件组成26 1.4.2程序运行机制27 习题129 第2章Qt开发基础31 2.1Qt应用概述31 2.1.1Qt应用特点31 2.1.2Qt应用功能32 2.2Qt元对象系统34 2.2.1对象模型34 2.2.2元对象系统35 2.2.3属性系统36 2.3信号与槽44 2.3.1概述44 2.3.2信号44 2.3.3槽45 2.3.4关联46 2.4常用的Qt工具类51 2.4.1字符串类51 2.4.2容器类56 习题263 第3章界面设计组件67 3.1基本窗体67 3.1.1QWidget类67 3.1.2简单实例70 3.2常用组件71 3.2.1按钮组件71 3.2.2输入组件73 3.2.3显示组件79 3.2.4浏览组件80 3.2.5容器组件87 3.2.6布局组件89 3.3布局管理89 3.3.1QLayout类89 3.3.2基本布局90 3.3.3表单布局92 3.3.4网格布局94 习题395 第4章主框架窗体99 4.1框架结构99 4.1.1基本元素99 4.1.2主窗体类100 4.2菜单设计102 4.2.1菜单相关类102 4.2.2可视化设计107 4.2.3纯代码设计111 4.3工具栏设计113 4.3.1工具栏相关类113 4.3.2可视化设计116 4.3.3纯代码设计118 4.4状态栏设计118 4.4.1QStatusBar类118 4.4.2设计实例119 4.5中心部件121 4.6锚接部件123 4.6.1QDockWidget类123 4.6.2设计实例124 习题4125 第5章对话框设计128 5.1对话框相关Qt类128 5.1.1QDialog类128 5.1.2QDialogButtonBox类130 5.2自定义对话框131 5.2.1模态对话框131 5.2.2非模态对话框132 5.2.3数据交换133 5.3标准对话框137 5.3.1颜色对话框137 5.3.2文件对话框138 5.3.3字体对话框139 5.3.4输入对话框140 5.3.5消息对话框141 5.4其他Qt窗体143 5.4.1分割窗体143 5.4.2层叠窗体145 5.4.3闪屏窗体147 5.4.4MDI窗体149 习题5152 第6章事件系统155 6.1事件机制155 6.1.1事件的描述155 6.1.2事件的产生158 6.1.3事件的传递159 6.1.4事件的过滤160 6.1.5事件的处理162 6.2事件处理162 6.2.1事件处理示例163 6.2.2事件过滤器的使用166 6.3鼠标事件167 6.3.1QMouseEvent类167 6.3.2鼠标事件处理169 6.4键盘事件171 6.4.1QKeyEvent类171 6.4.2键盘事件处理172 6.5定时器事件173 6.5.1QTimerEvent类174 6.5.2基于QObject类的定时器174 6.5.3基于QTimer类的定时器175 习题6177 第7章文件与数据库181 7.1Qt文件系统181 7.1.1文件系统类181 7.1.2文件I/O设备182 7.2目录操作184 7.2.1QDir类184 7.2.2QTemporaryDir类185 7.2.3QFileInfo类187 7.2.4常用目录操作188 7.3文件操作193 7.3.1相关操作类193 7.3.2文件信息查询196 7.3.3文本文件读写197 7.3.4二进制文件读写201 7.4Qt SQL概述203 7.4.1Qt SQL模块203 7.4.2Qt SQL驱动204 7.5数据库操作206 7.5.1数据库的连接207 7.5.2数据库的操作212 习题7217 第8章模型/视图结构222 8.1概述222 8.1.1基本结构222 8.1.2数据表示223 8.1.3模型/视图结构相关Qt类226 8.2数据模型227 8.2.1QAbstractListModel模型228 8.2.2QFileSystemModel模型231 8.2.3QStandardItemModel模型234 8.2.4QAbstractTableMode模型236 8.3代理组件241 8.3.1默认代理241 8.3.2自定义代理243 8.4视图组件245 8.4.1QAbstractItemView类245 8.4.2QListView视图247 8.4.3QTableView视图250 8.4.4QTreeView视图253 习题8256 第9章图形绘制260 9.1Qt绘图基础260 9.1.1简单示例260 9.1.2QPainter类261 9.1.3QPen类263 9.1.4QBrush类267 9.2基本图形绘制270 9.2.1点和线的绘制271 9.2.2矩形和椭圆的绘制273 9.2.3多边形和扇形的绘制274 9.2.4渐变填充图形的绘制275 9.3图像绘制279 9.4其他绘制281 9.4.1绘制文字282 9.4.2绘制路径283 9.5坐标变换284 9.5.1平移变换284 9.5.2缩放变换285 9.5.3扭曲变换286 9.5.4旋转变换287 习题9288 第10章多媒体编程293 10.1Qt多媒体简介293 10.1.1Qt多媒体功能293 10.1.2Qt多媒体模块294 10.2音频处理295 10.2.1音频处理相关Qt类295 10.2.2音频播放299 10.2.3音频输入308 10.3视频播放310 10.3.1视频播放相关Qt类310 10.3.2视频播放编程方法312 10.4视频操作316 10.4.1视频操作相关Qt类316 10.4.2设备查询321 10.4.3图像捕获321 10.4.4视频录制323 习题10325 第11章网络编程329 11.1Qt网络模块329 11.1.1Qt Network模块329 11.1.2Qt WebSockets模块330 11.1.3Qt WebChannel模块332 11.1.4Qt WebEngine模块332 11.1.5Qt WebView模块333 11.2网络信息查询334 11.2.1使用QHostInfo类335 11.2.2使用QNetworkInterface类336 11.3HTTP编程338 11.3.1HTTP相关Qt类338 11.3.2HTTP访问341 11.3.3HTTP下载343 11.4TCP编程345 11.4.1TCP相关Qt类346 11.4.2服务器端编程348 11.4.3客户端编程351 11.5UDP编程353 11.5.1QUdpSocket类353 11.5.2UDP单播354 11.5.3UDP组播357 习题11361 第12章进程与线程365 12.1进程与线程相关Qt类365 12.1.1QProcess类365 12.1.2QThread类367 12.2进程369 12.2.1进程的启动370 12.2.2进程间通信372 12.3线程378 12.3.1线程的运行378 12.3.2线程间通信382 12.4线程控制384 12.4.1基于互斥量384 12.4.2基于信号量386 12.4.3基于QReadWriteLock389 12.4.4基于QWaitCondition391 习题12393 参考文献397