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

  • 適配器模式
  • 門面模式
  • 享元模式
  • 命令模式
  • 抽象工廠模式
  • 複合模式