PySide 6PyQt 6快速開發與實戰

《PySide 6PyQt 6快速開發與實戰》是電子工業出版社出版圖書,作者是孫洋洋,王碩

從基礎概念到完整項目開發,幫助零基礎讀者快速掌握PySide 6/PyQt 6編程開發

基本介紹

  • 書名:PySide 6PyQt 6快速開發與實戰
  • 作者:孫洋洋、王碩
  • 出版社:電子工業出版社
  • 出版時間:2023年1月
  • 頁數:660 頁
  • 定價:139 元
  • 開本:16 開
  • ISBN:9787121445255
內容簡介,圖書目錄,作者簡介,

內容簡介

共9章,內容包含PySide 6/PyQt 6的常用知識及一些經典套用。每章的側重點不同,且相對獨立,讀者根據目錄即可獲取自己所需的內容

圖書目錄

第1章 認識PySide 6/PyQt 6 1
1.1 PySide 6/PyQt 6框架簡介 1
1.1.1 從GUI到PySide/PyQt 1
1.1.2 PySide 6/PyQt 6的進展 3
1.1.3 PySide/PyQt相對於Qt的優勢 4
1.1.4 PySide 6/PyQt 6與PySide 2/PyQt 5的關係 5
1.1.5 PyQt 5與PyQt 4 6
1.1.6 其他圖形界面開發庫 7
1.2 搭建PySide 6/PyQt 6環境 7
1.2.1 在Windows下使用PySide 6/PyQt 6環境 8
1.2.2 在Windows下自行搭建PySide 6/PyQt 6環境 8
1.2.3 在macOS和Linux下搭建PySide 6/PyQt 6環境 14
1.2.4 測試PySide 6/PyQt 6環境 16
1.3 PySide 6快捷工具簡介 16
1.3.1 Qt Designer 17
1.3.2 Qt用戶互動編譯器 18
1.3.3 Qt資源編譯器 18
1.3.4 Qt幫助文檔 19
1.3.5 Qt翻譯器與其他 19
1.3.6 PyQt 6中的Qt工具 20
1.4 常用IDE的安裝配置與使用 21
1.4.1 Eric 7的安裝 21
1.4.2 Eric 7的相關配置 23
1.4.3 Eric 7的基本使用 24
1.4.4 PyCharm的安裝 28
1.4.5 使用PyCharm搭建PySide 6/PyQt 6環境 30
1.4.6 PyCharm的基本使用 32
1.4.7 VSCode的安裝 35
1.4.8 VSCode的配置 36
1.4.9 VSCode的基本使用 37
1.5 PySide/PyQt的啟動方式 40
第2章 Qt Designer的使用 43
2.1 Qt Designer快速入門 43
2.1.1 新建主視窗 44
2.1.2 視窗主要區域介紹 45
2.1.3 查看.ui檔案 47
2.1.4 將.ui檔案轉換為.py檔案 49
2.1.5 將.qrc檔案轉換為.py檔案 54
2.1.6 界面與邏輯分離 54
2.2 布局管理入門 55
2.2.1 使用布局管理器進行布局 56
2.2.2 使用容器控制項進行布局 59
2.3 Qt Designer實戰套用 60
2.3.1 絕對布局 61
2.3.2 使用布局管理器進行布局 63
2.3.3 其他流程補充 70
2.3.4 測試程式 73
2.4 信號與槽關聯 75
2.4.1 簡單入門 75
2.4.2 獲取信號與槽 80
2.4.3 使用信號/槽機制 85
2.5 選單欄與工具列 85
2.5.1 界面設計 85
2.5.2 效果測試 90
2.6 添加圖片(資源檔案) 92
2.6.1 創建資源檔案 92
2.6.2 添加資源檔案 93
2.6.3 轉換資源檔案 96
2.6.4 效果測試 97
第3章 基本視窗控制項(上) 100
3.1 主視窗(QMainWindow/QWidget/QDialog) 100
3.1.1 視窗類型 100
3.1.2 創建主視窗 102
案例3-1 創建主視窗 103
3.1.3 移動主視窗 106
3.1.4 添加圖示 106
3.1.5 顯示狀態欄 107
3.1.6 視窗坐標系統 107
3.2 標籤(QLabel) 110
案例3-2 QLabel標籤的基本用法 111
3.2.1 對齊 112
3.2.2 設定顏色 112
3.2.3 顯示HTML信息 112
3.2.4 滑動與單擊事件 112
3.2.5 載入圖片和氣泡提示QToolTip 113
3.2.6 使用快捷鍵 114
案例3-3 QLabel快捷鍵的基本用法 114
3.3 單行文本框(QLineEdit) 115
案例3-4 QLineEdit的基本用法 116
3.3.1 對齊、tooltip和顏色設定 117
3.3.2 占位提示符、限制輸入長度、限制編輯 117
3.3.3 移動指針 118
3.3.4 編輯 119
3.3.5 相關信號與槽 119
3.3.6 快捷鍵 120
3.3.7 隱私保護:回顯模式 121
案例3-5 回顯模式的顯示效果 121
3.3.8 限制輸入:驗證器 123
案例3-6 QValidator驗證器的使用方法 123
3.3.9 限制輸入:掩碼 124
案例3-7 輸入掩碼InputMask 125
3.4 多行文本框(QTextEdit/QPlainTextEdit) 126
3.4.1 QTextEdit 126
案例3-8 QTextEdit控制項的使用方法 127
3.4.2 QPlainTextEdit 129
案例3-9 QPlainTextEdit控制項的使用方法 129
3.4.3 快捷鍵 130
3.4.4 QSyntaxHighlighter 132
案例3-10 QSyntaxHighlighter控制項的使用方法 132
3.4.5 QTextBrowser 133
案例3-11 QTextBrowser控制項的使用方法 134
3.5 按鈕類控制項 137
3.5.1 QAbstractButton 137
3.5.2 QPushButton 138
案例3-12 QPushButton按鈕的使用方法 139
3.5.3 QRadioButton、QGroupBox和QButtonGroup 141
案例3-13 QRadioButton按鈕的使用方法 142
3.5.4 QCheckBox 144
案例3-14 QCheckBox按鈕的使用方法 145
3.5.5 QCommandLinkButton 148
案例3-15 QCommandLinkButton按鈕的使用方法 148
3.6 工具按鈕(QToolButton) 150
案例3-16 QToolButton按鈕的使用方法 150
3.7 下拉列表框(QComboBox) 156
案例3-17 QComboBox按鈕的使用方法 157
3.7.1 查詢 158
3.7.2 增加 159
3.7.3 修改 159
3.7.4 刪除 161
3.7.5 信號與槽函式 161
3.7.6 模型/視圖框架 163
3.7.7 QFontComboBox 163
案例3-18 QFontComboBox按鈕的使用方法 165
3.8 微調框(QSpinBox/QDoubleSpinBox) 167
案例3-19 QSpinBox控制項的使用方法 168
3.8.1 步長和範圍 169
3.8.2 循環 169
3.8.3 前綴、後綴與千位分隔設定 169
3.8.4 特殊選擇 170
3.8.5 信號與槽 170
3.8.6 自定義顯示格式 171
案例3-20 QSpinBox控制項的自定義格式顯示 171
案例3-21 QDoubleSpinBox控制項的使用方法 172
3.9 日期時間控制項 173
3.9.1 日期時間相關控制項 173
3.9.2 QDateTimeEdit、QDateEdit和QTimeEdit 174
案例3-22 QDateTimeEdit控制項的使用方法 174
3.9.3 QCalendarWidget 181
案例3-23 QCalendarWidget控制項的使用方法 183
3.10 滑動控制項 184
3.10.1 QAbstractSlider 185
3.10.2 QSlider 186
案例3-24 QSlider控制項的使用方法 187
3.10.3 QDial 188
案例3-25 QDial控制項的使用方法 189
3.10.4 QScrollBar 190
案例3-26 QScrollBar控制項的使用方法 191
3.11 區域滾動(QScrollArea) 193
案例3-27 QScrollArea控制項的使用方法 194
第4章 基本視窗控制項(下) 197
4.1 對話框類控制項(QDialog族) 197
4.1.1 對話框簡介 198
4.1.2 模式對話框 198
4.1.3 非模式對話框 199
案例4-1 QDialog控制項的基本用法 199
4.1.4 擴展對話框 204
案例4-2 QDialog擴展對話框的使用方法 204
4.1.5 QMessageBox 206
案例4-3 QMessageBox控制項的使用方法 207
4.1.6 QInputDialog 212
案例4-4 QInputDialog控制項的使用方法 213
4.1.7 QFontDialog 215
案例4-5 QFontDialog控制項的使用方法 215
4.1.8 QFileDialog 217
案例4-6 QFileDialog控制項的使用方法 217
4.1.9 QColorDialog 222
案例4-7 QColorDialog控制項的使用方法 223
4.1.10 QProgressDialog和QProgressBar 225
案例4-8 QProgressDialog控制項和QProgressBar控制項的使用方法 226
4.1.11 QDialogButtonBox 231
案例4-9 QDialogButtonBox控制項的使用方法 233
4.2 視窗繪圖類控制項 236
4.2.1 QPainter 236
案例4-10 QPainter的簡單用法 239
4.2.2 QBrush 241
案例4-11 QBrush的使用方法 244
4.2.3 QPen 246
案例4-12 QPen的使用方法 248
4.2.4 幾個繪圖案例 250
案例4-13 綜合使用QPainter、QBrush和QPen的方法 251
案例4-14 QPainter的使用方法 251
案例4-15 QPainter實時繪圖 253
案例4-16 繪製同心圓 254
4.2.5 QPixmap 255
4.2.6 QImage 257
案例4-17 QPixmap控制項和QImage控制項的使用方法 263
4.3 拖曳與剪貼簿 266
4.3.1 QMimeData 267
案例4-18 QMimeData控制項的使用方法 269
4.3.2 Drag與Drop 271
案例4-19 QDrag的使用方法1 272
案例4-20 QDrag的使用方法2 276
4.3.3 QClipboard 280
案例4-21 QClipboard控制項的使用方法 281
4.4 選單欄、工具列、狀態欄與快捷鍵 283
4.4.1 選單欄QMenu 284
案例4-22 QMenuBar、QMenu和QAction的使用方法 284
4.4.2 快捷鍵QKeySequence(Edit)、QShortcut 288
案例4-23 QShortcut的使用方法 292
案例4-24 QKeySequenceEdit的使用方法 293
4.4.3 工具列QToolBar 296
案例4-25 QToolBar的使用方法 296
4.4.4 QStatusBar 300
案例4-26 QStatusBar控制項的使用方法 300
4.5 其他控制項 303
4.5.1 QFrame 303
案例4-27 QFrame的使用方法 305
4.5.2 QLCDNumber 307
案例4-28 QLCDNumber的使用方法 307
第5章 表格與樹 310
5.1 QListWidget 310
5.1.1 增/刪項目 311
5.1.2 選擇 311
5.1.3 外觀 313
5.1.4 工具、狀態、幫助提示 313
5.1.5 信號與槽 313
5.1.6 上下文選單 314
案例5-1 QListWidget控制項的使用方法 314
5.2 QTableWidget 323
5.2.1 創建 323
5.2.2 基於item的操作 324
5.2.3 基於行列的操作 324
5.2.4 導航 324
5.2.5 表頭(標題) 325
5.2.6 自定義小部件 325
5.2.7 調整行/列的大小 326
5.2.8 拉伸填充剩餘空間 327
5.2.9 坐標系 327
5.2.10 信號與槽 327
5.2.11 上下文選單 328
案例5-2 QTableWidget控制項的使用方法 328
5.3 QTreeWidget 335
案例5-3 QTreeWidget控制項的使用方法 338
5.4 模型/視圖/委託框架 339
5.4.1 模型 339
5.4.2 視圖 342
5.4.3 委託 342
5.5 QListView 343
5.5.1 綁定模型和初始化數據 344
5.5.2 增、刪、改、查、移 344
5.5.3 列表視圖布局 344
5.5.4 其他要點 346
案例5-4 QListView結合QStringListModel的使用方法 346
5.6 QTableView 350
5.6.1 綁定模型和初始化數據 351
5.6.2 模型(QStandardItemModel)的相關函式 351
5.6.3 視圖(QTableView)的相關函式 352
5.6.4 表頭(標題,QHeaderView)的相關函式 353
5.6.5 上下文選單 355
案例5-5 QTableView結合QStandardItemModel的使用方法 355
5.7 QTreeView 362
案例5-6 QTreeView控制項結合QStandardItemModel模型的使用方法 365
案例5-7 QTreeView和QFileSystemModel的使用方法 366
5.8 自定義模型 367
案例5-8 QTableView控制項結合自定義模型的使用方法 368
5.9 自定義委託 374
案例5-9 QTableView控制項結合自定義委託的使用方法 374
5.10 Qt資料庫 381
5.10.1 Qt SQL簡介 381
5.10.2 連線資料庫 382
5.10.3 執行SQL語句 386
案例5-10 資料庫的創建 387
5.10.4 資料庫模型 389
5.10.5 資料庫模型與視圖的結合 393
案例5-11 QSqlQueryModel分頁視圖查詢 395
案例5-12 QSqlTableModel排序過濾表 399
案例5-13 QSqlRelationalTableModel關係表單 403
5.10.6 數據感知表單 406
案例5-14 QDataWidgetMapper數據感知表單 407
5.10.7 自定義模型與委託 409
案例5-15 資料庫自定義模型+委託案例 409
第6章 高級視窗控制項 413
6.1 視窗風格 413
6.1.1 設定視窗風格 413
6.1.2 設定視窗樣式 414
6.1.3 設定視窗背景 415
6.1.4 設定視窗透明 418
案例6-1 WinStyle案例 418
6.2 布局管理 420
6.2.1 布局管理的基礎知識 420
6.2.2 Q(V/H)BoxLayout 423
案例6-2 QBoxLayout的使用方法 425
6.2.3 QGridLayout 428
案例6-3 QGridLayout的使用方法 429
6.2.4 QFormLayout 431
案例6-4 QFormLayout的使用方法 433
6.2.5 QStackedLayout 434
案例6-5 QStackedLayout的使用方法 435
案例6-6 QLayout布局管理的使用方法 436
6.2.6 QSplitter 439
案例6-7 QSplitter控制項的使用方法 440
6.3 容器:裝載更多的控制項 443
6.3.1 QTabWidget 443
案例6-8 QTabWidget的使用方法 444
6.3.2 QStackedWidget 446
案例6-9 QStackedWidget控制項的使用方法 446
6.3.3 QToolBox 449
案例6-10 QToolBox的使用方法 450
6.3.4 QDockWidget 451
案例6-11 QDockWidget控制項的使用方法1 452
案例6-12 QDockWidget控制項的使用方法2 455
6.3.5 多文檔界面QMdiArea和QMdiSubWindow 455
案例6-13 QMdiArea控制項和QMdiSubWindow控制項的使用方法1 459
案例6-14 QMdiArea控制項和QMdiSubWindow控制項的使用方法2 463
6.3.6 QAxWidget 464
案例6-15 QAxWidget的使用方法 465
6.4 多執行緒 469
6.4.1 QTimer 469
案例6-16 QTimer的使用方法 470
6.4.2 QThread 472
案例6-17 QThread的使用方法 474
6.4.3 事件處理 477
6.5 網頁互動 479
6.5.1 載入內容 479
6.5.2 標題和圖示 479
6.5.3 QWebEnginePage的相關方法 479
6.5.4 運行JavaScript函式 482
案例6-18 基於QWebEngineView實現基本的Web瀏覽功能 483
6.6 QSS的UI美化 486
6.6.1 QSS的基本語法規則 486
6.6.2 QSS選擇器的類型 488
6.6.3 QSS子控制項 489
6.6.4 QSS偽狀態 489
6.6.5 顏色衝突與解決方法 490
6.6.6 繼承與多樣 491
6.6.7 Qt Designer與樣式表 492
案例6-19 QSS的使用方法 493
6.6.8 QDarkStyleSheet 497
案例6-20 QDarkStyle的使用方法 497
6.7 QML淺議 498
6.7.1 QML的基本概念 498
6.7.2 QML與JavaScript 498
6.7.3 在Python中調用QML 499
案例6-21 在Python中調用QML 499
案例6-22 將Python對象暴露給QML:上下文屬性 500
案例6-23 將Python對象暴露給QML:註冊類型 502
案例6-24 QML調用Python模型 504
案例6-25 在QML中調用Python屬性的方法 507
第7章 信號/槽和事件 511
7.1 信號與槽的簡介 511
7.1.1 基本介紹 511
7.1.2 創建信號 513
7.1.3 操作信號 513
7.1.4 槽函式 514
7.2 信號與槽的案例 514
案例7-1 信號與槽的使用方法 515
7.2.1 內置信號+內置槽函式 515
7.2.2 內置信號+自定義槽函式 517
7.2.3 自定義信號+內置槽函式 517
7.2.4 自定義信號+自定義槽函式 518
7.2.5 斷開信號與槽連線 518
7.2.6 恢覆信號與槽連線 519
7.2.7 裝飾器信號與槽連線 521
7.2.8 多執行緒信號與槽連線 522
7.3 信號與槽的參數 523
案例7-2 信號與槽的參數 523
7.3.1 內置信號+默認參數 524
7.3.2 自定義信號+默認參數 524
7.3.3 內置信號+自定義參數lambda 525
7.3.4 內置信號+自定義參數partial 526
7.3.5 自定義信號+自定義參數lambda 527
7.3.6 自定義信號+自定義參數partial 528
7.4 基於Qt Designer的信號與槽 529
案例7-3 基於Qt Designer的信號與槽的使用方法 530
7.5 事件處理機制 532
7.5.1 事件處理機制和信號/槽機制的區別 533
7.5.2 常見事件類型 533
7.5.3 使用事件處理的方法 536
7.5.4 經典案例分析 537
案例7-4 事件處理機制的方法1和方法2 537
案例7-5 事件處理機制的方法3 543
案例7-6 事件處理機制的方法4 546
第8章 Python的擴展套用 547
8.1 使用PyInstaller打包項目生成.exe檔案 547
8.1.1 安裝PyInstaller 547
8.1.2 PyInstaller的用法與參數 548
8.1.3 PyInstaller案例 550
8.2 Pandas在PySide/PyQt中的套用 552
8.2.1 qtpandas模組庫的安裝 552
8.2.2 官方案例解讀 553
8.2.3 設定提升的視窗部件 555
8.2.4 qtpandas的使用 557
8.3 Matplotlib在PyQt中的套用 559
8.3.1 對MatplotlibWidget的解讀 560
8.3.2 設定提升的視窗部件 563
8.3.3 MatplotlibWidget的使用 564
8.3.4 更多擴展 565
8.4 PyQtGraph在PyQt中的套用 566
8.4.1 PyQtGraph的安裝 567
8.4.2 官方案例解讀 567
8.4.3 設定提升的視窗部件 569
8.4.4 PyQtGraph的使用 569
8.4.5 更多擴展 573
8.5 Plotly在PyQt中的套用 573
8.5.1 Plotly的安裝 574
8.5.2 案例解讀 574
8.5.3 設定提升的視窗部件 575
8.5.4 Plotly的使用 576
8.5.5 Plotly的更多擴展 579
8.5.6 Dash的使用 579
8.5.7 Dash的更多擴展 583
第9章 實戰套用 584
9.1 在量化投資中的套用 584
9.2 在券商投研中的套用 593
9.2.1 從爬蟲說起 594
9.2.2 程式解讀 595
附錄A Qt for Python代碼轉換 618
附錄B C++ to Python代碼轉換 624
附錄C 本書一些通用枚舉表格目錄 630
附錄D 優秀PySide/PyQt開源項目推薦 631

作者簡介

孫洋洋,就職於某國營保險公司,負責公司量化投研系統的開發、維護及策略研發。熟悉多種程式語言,擅長量化投資與GUI程式開發、網路爬蟲、機器學習技術,在金融量化領域有多年工作經驗。
王碩,從事與Python、Go和Java相關的工作,熱愛並長期專注於前端開發,以及對大數據和高性能計算技術的研究,積累了大量的一線開發經驗,同時具有豐富的工業級系統開發和運維實戰經驗。

相關詞條

熱門詞條

聯絡我們