Course Code: pyqtlili
Duration: 14 hours
Course Outline:

培训对象:

  • 架构师、开发工程师

学员基础:

  • 有至少一年以上的Python、PyQt开发基础

授课方式:

  • 定制课程 + 案例讲解 ,50%理论知识,50%案例讲解

培训内容:

  • 2天,共计14小时(每日含1小时休息)

课程安排:

第一天

PyQt概述

  • 使用Qt Designer创建UI
  • 使用PyCharm编写PyQt应用程序

Qt Designer的使用

  • Qt Designer快速入门
  • 新建主窗口
  • 窗口主要区域介绍
  • 查看.ui文件
  • 将.ui文件转换为.py文件
  • 将.qrc文件转换为.py文件
  • 界面与逻辑分离
  • 布局管理入门
  • 使用布局管理器进行布局
  • 使用容器控件进行布局
  • Qt Designer实战应用
  • 绝对布局
  • 使用布局管理器进行布局
  • 测试程序
  • 信号与槽关联
  • 菜单栏与工具栏
  • 界面设计
  • 添加图片(资源文件)
  • 创建资源文件
  • 添加资源文件
  • 转换资源文件

Qt数据库

  • Qt SQL简介
  • 连接数据库
  • 执行SQL语句
  • 模型、视图、委托框架
  • 数据库模型
  • 数据库模型与视图结合
  • QSqlQueryModel分页视图查询
  • QSqlTableModel排序过滤表
  • QSqlRelationalTableModel关系表单
  • 数据感知表单
  • QDataWidgetMapper数据感知表单
  • 自定义模型与委托
  • 数据库自定义模型+委托案例

多线程编程

  • 线程概述
  • 线程的定义与分类
  • 多线程的优缺点
  • QTimer:计时器
  • QThread:线程类
  • 线程的实现
  • 线程的生命周期
  • 线程的应用

PyQt程序面向对象设计

  • 高效函数设计
  • 面向对象概述
  • 类的定义和使用
  • 封装
  • 组合
  • 继承
  • 继承提供抽象
  • 多重继承
  • 模块和包
  • 组织模块
  • 扩展内置对象
  • 重写和super
  • 多重继承
  • 钻石型继承问题
  • 不同集合的参数
  • 多态
  • 抽象基类
  • 使用抽象基类
  • 创建抽象基类

测试面向对象程序

  • 测试驱动开发
  • 单元测试
  • 断言方法
  • 减少模板代码并进行清理
  • 组织和运行测试
  • 忽略失败的测试
  • 用py.test进行测试
  • 完成设置和清理的方式
  • 完全不同的设置变量的方式
  • 在py.test中跳过测试
  • 模拟昂贵的对象

高效Python:性能优化技巧

PyQt软件性能调优案例实战

第二天

PyQt工程化开发最佳实践

  • 开源协议概述
  • Python库的开源协议
  • PyQt源代码工程目录结构
  • Python包管理工具:Anaconda实战
  • 使用Nexus管理pip仓库
  • 使用SonarQube 检查 Python 代码质量
  • 使用Nexus实现PyQt程序制品库管理

设计可扩展性、可维护性PyQt应用程序

Python设计模式I

  • 装饰器模式
  • 装饰器的例子
  • Python中的装饰器
  • 观察者模式
  • 观察者模式的例子
  • 策略模式
  • 策略模式的例子
  • Python中的策略
  • 状态模式
  • 状态模式的例子
  • 状态与策略
  • 状态转换作为协程
  • 单例模式
  • 单例模式的实现
  • 模板模式
  • 模板模式的例子

Python设计模式II

  • 适配器模式
  • 门面模式
  • 享元模式
  • 命令模式
  • 抽象工厂模式
  • 复合模式