主编推荐语
Qt5/PyQt5实战指南,100个精彩案例手把手教掌握,C++/Python跨平台软件必备资料。
内容简介
《Qt5/PyQt5实战指南――手把手教你掌握100个精彩案例》根据跨平台软件研发工作中对Qt技术的需求,按照循序渐进的原则逐步介绍Qt的各种实用技术。本书分为3部分:第1部分(第1~14章)讲述C++版的Qt知识,着重介绍Qt的安装配置以及开发环境搭建、Qt项目文件的配置与使用、Qt常用类与常用控件的应用、使用QtDesigner绘制窗体与控件、库的开发与使用、插件开发技术、Qt的MVC机制及应用、SDI与MDI类应用开发技术、Qt多线程应用开发及并发框架、Qt网络应用程序开发技术;第2部分(第15~22章)讲述PyQt版的开发知识,内容同第一部分大体一致,用Python语言实现并根据Python语言特点省去了部分内容;第3部分(第23、24章)分别以C++语言、Python语言的实战项目为例,讲解Qt技术的综合应用。全书提供了100个应用案例,除第1、23、24章外,每章后均附有配套练习。《Qt5/PyQt5实战指南――手把手教你掌握100个精彩案例》适合作为C++/Python跨平台软件研发工作人员的参考资料,也可作为高等院校计算机、软件工程等相关专业高年级本科生、研究生的参考教材。
目录
- 版权信息
- 作者简介
- 内容简介
- 前言
- 一、为什么要写本书
- 二、内容特色
- 三、阅读建议
- 四、读者对象
- 五、致谢
- 第1章准备工作
- 1.1 推荐的开发环境
- 1.2 安装Visual Studio 2017
- 1.3 安装Python
- 1.4 安装LLVM
- 1.5 用编译的方式安装Qt 5.11.1
- 1.6 用安装包安装Qt 5.11.1
- 1.7 在Linux上编译代码出错时的处理
- 1.8 配套源代码
- 第3章多国语言国际化
- 3.1 案例5 怎样实现国际化
- 3.2 知识点 几种常见的国际化编程场景
- 3.3 知识点 中英文翻译失败如何处理
- 3.4 配套练习
- 第4章打基础
- 4.1 案例6 开发一个DLL
- 4.2 知识点 使用命名空间
- 4.3 案例7 QString的6个实用案例
- 4.4 案例8 用qDebug()输出信息
- 4.5 案例9 使用QVector处理数组
- 4.6 案例10 使用QList处理链表
- 4.7 案例11 使用QMap建立映射
- 4.8 案例12 万能的QVariant
- 4.9 案例13 使用QMessagebox弹出各种等级的提示信息
- 4.10 案例14 使用QInputDialog获取多种类型的用户输入
- 4.11 知识点 开发自己的公共类库
- 4.12 案例15 普通文本文件读写
- 4.13 案例16 XML格式的配置文件
- 4.14 知识点 INI格式的配置文件
- 4.15 案例17 把类对象序列化到二进制文件
- 4.16 案例18 从二进制文件反序列化类对象
- 4.17 案例19 类的XML格式序列化
- 4.18 知识点 类的二进制格式序列化——向后兼容
- 4.19 案例20 使用流方式读写XML
- 4.20 知识点 使用单体模式实现全局配置
- 4.21 案例21 读取GB 13000编码的身份证信息
- 4.22 配套练习
- 第5章对话框
- 5.1 知识点 Qt Designer的使用
- 5.2 知识点 在Designer中进行界面布局
- 5.3 案例22 对话框——走起
- 5.4 案例23 三种编程方式实现信号-槽开发
- 5.5 案例24 自定义signal与信号转发
- 5.6 案例25 disconnect的用途
- 5.7 知识点 消息阻塞-防止额外触发槽函数
- 5.8 案例26 信号-槽只能用在对话框里吗
- 5.9 案例27 对象之间还能怎么传递消息
- 5.10 知识点 编程实现控件嵌套布局
- 5.11 知识点 样式
- 5.12 案例28 使用QStackedLayout实现向导界面
- 5.13 案例29 定时器1
- 5.14 案例30 定时器2
- 5.15 配套练习
- 第6章常用控件
- 6.1 案例31 使用QLabel显示文本或图片
- 6.2 案例32 使用QLineEdit获取多种输入
- 6.3 案例33 使用QComboBox获取用户输入
- 6.4 案例34 使用QListWidget展示数据列表
- 6.5 案例35 使用QSlider控制进度
- 6.6 配套练习
- 第7章用QPainter实现自定义绘制
- 7.1 知识点 怎样进行自定义绘制
- 7.2 案例36 萌新机器人
- 7.3 案例37 机器人的新装
- 7.4 配套练习
- 第8章模型视图代理
- 8.1 知识点 Qt的MVC简介
- 8.2 知识点 使用QStandardItemModel构建树模型
- 8.3 案例38 使用代理实现属性窗
- 8.4 案例39 带子属性的属性窗
- 8.5 配套练习
- 第9章开发SDI应用
- 9.1 案例40 开发一个SDI应用
- 9.2 案例41 使用自定义视图
- 9.3 案例42 添加主菜单
- 9.4 案例43 常规工具条
- 9.5 知识点 在状态栏上显示鼠标坐标
- 9.6 知识点 使用QSplashScreen为程序添加启动画面
- 9.7 知识点 工具条反显
- 9.8 案例44 打开文件对话框
- 9.9 案例45 浮动窗里的列表框
- 9.10 案例46 拖放
- 9.11 案例47 使用树视图做个工具箱
- 9.12 案例48 使用事项窗展示事项或日志
- 9.13 案例49 剪切、复制、粘贴
- 9.14 案例50 上下文菜单
- 9.15 案例51 利用属性机制实现动画弹出菜单
- 9.16 知识点 main()函数一般都写什么
- 9.17 配套练习
- 第10章开发MDI应用
- 10.1 案例52 MDI——采用同一类型的View
- 10.2 知识点 MDI——采用不同类型的View
- 10.3 配套练习
- 第11章重写Qt事件
- 11.1 知识点 QWidget事件简介
- 11.2 案例53 通过重写鼠标事件实现图元移动
- 11.3 案例54 通过重写键盘事件实现图元移动
- 11.4 知识点 无法切换到中文输入时该怎么办
- 11.5 配套练习
- 第12章开发插件
- 12.1 知识点 什么是插件,插件用来干什么
- 12.2 案例55 怎样开发插件
- 12.3 配套练习
- 第13章开发多线程应用
- 13.1 案例56 多线程和互斥锁
- 13.2 知识点 多线程应用中如何与主界面通信
- 13.3 案例57 使用QtConcurrent处理并发——Map模式
- 13.4 案例58 使用QtConcurrent处理并发——MapReduce模式
- 13.5 配套练习
- 第14章开发网络应用
- 14.1 案例59 基于Qt的TCP/IP编程
- 14.2 案例60 TCP/IP多客户端编程
- 14.3 配套练习
- 第15章PyQt 5基础
- 15.1 知识点 PyQt 5简介
- 15.2 知识点 搭建PyQt 5开发环境
- 15.3 案例61 编写第一个PyQt 5程序
- 15.4 案例62 给应用加上图片
- 15.5 案例63 信号-槽初探——窗口A调用窗口B
- 15.6 案例64 编写代码实现控件布局
- 15.7 案例65 在窗体A中嵌入自定义控件B
- 15.8 案例66 使用QLabel显示GIF动画
- 15.9 案例67 使用QLineEdit获取多种输入
- 15.10 案例68 使用QComboBox获取用户输入
- 15.11 案例69 使用QListWidget展示并操作列表
- 15.12 案例70 使用QSlider控制进度
- 15.13 案例71 使用QMessageBox弹出提示信息
- 15.14 案例72 使用QInputDialog获取用户输入
- 15.15 案例73 使用QFileDialog获取用户选择的文件名
- 15.16 知识点 把程序最小化到系统托盘
- 15.17 配套练习
- 第16章PyQt 5进程内通信
- 16.1 知识点 PyQt 5中的信号-槽
- 16.2 案例74 使用自定义信号
- 16.3 案例75 带参数的自定义信号
- 16.4 知识点 信号比槽的参数少该怎么办
- 16.5 案例76 使用QTimer实现定时器
- 16.6 知识点 使用timerEvent()实现定时器
- 16.7 案例77 使用QStackedLayout实现向导界面
- 16.8 配套练习
- 第17章PyQt 5实现自定义绘制
- 17.1 知识点 怎样进行自定义绘制
- 17.2 案例78 萌新机器人
- 17.3 案例79 机器人的新装
- 17.4 配套练习
- 第18章PyQt 5中的模型视图代理
- 18.1 知识点 使用QStandardItemModel构建树模型
- 18.2 案例80 最简单的属性窗
- 18.3 案例81 使用代理实现属性窗
- 18.4 案例82 自定义属性窗
- 18.5 案例83 带子属性的属性窗
- 18.6 配套练习
- 第19章PyQt开发SDI应用
- 19.1 案例84 开发一个SDI应用
- 19.2 案例85 使用自定义视图
- 19.3 案例86 添加主菜单
- 19.4 案例87 常规工具条
- 19.5 案例88 在状态栏上显示鼠标坐标
- 19.6 知识点 使用QSplashScreen为程序添加启动画面
- 19.7 知识点 工具条反显
- 19.8 案例89 浮动窗里的列表框
- 19.9 案例90 拖放
- 19.10 案例91 使用树视图做个工具箱
- 19.11 案例92 使用事项窗展示事项或日志
- 19.12 案例93 剪切、复制、粘贴
- 19.13 案例94 上下文菜单
- 19.14 配套练习
- 第20章PyQt 5开发MDI应用
- 20.1 案例95 MDI——采用同一类型的View
- 20.2 知识点 MDI——采用不同类型的View
- 20.3 配套练习
- 第21章PyQt 5事件
- 21.1 案例96 通过重写鼠标事件实现图元移动
- 21.2 案例97 通过重写键盘事件实现图元移动
- 21.3 配套练习
- 第22章PyQt 5开发多线程应用
- 22.1 案例98 多线程和互斥锁
- 22.2 知识点 多线程应用中如何刷新主界面
- 22.3 配套练习
- 第23章项目实战——敏捷看板(C++版)
- 23.1 知识点 项目实战准备——访问SQLite数据库
- 23.2 知识点 项目实战准备——使用QCustomPlot绘制曲线
- 23.3 案例99 项目实战——敏捷看板
- 第24章项目实战——敏捷看板(PyQt版)
- 24.1 知识点 项目实战准备——访问SQLite数据库
- 24.2 知识点 项目实战准备——用Matplotlib绘制曲线
- 24.3 案例100 项目实战——敏捷看板
- 附录APyQt 5常用类所在模块
- 参考文献
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。