PySide 6/PyQt 6快速開發(fā)與實(shí)戰(zhàn)
定 價(jià):139 元
- 作者:孫洋洋
- 出版時(shí)間:2022/11/1
- ISBN:9787121445255
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:660
- 紙張:
- 版次:01
- 開本:16開
本書本書共有9章,包含PySide 6/PyQt 6常用知識及一些經(jīng)典應(yīng)用。每個(gè)章節(jié)側(cè)重點(diǎn)不同,但相對獨(dú)立,讀者根據(jù)目錄即可獲取自己所需的內(nèi)容。第1章介紹PySide/PyQt的入門知識;第2章介紹Qt Designer的詳細(xì)用法;第3章和第4章介紹PySide/PyQt的基本窗口控件的使用方法;第5章介紹PySide/PyQt的特殊控件——表格與樹;第6章介紹一些高級窗口控件;第7章介紹信號/槽和事件;第8章介紹Python的擴(kuò)展應(yīng)用;第9章介紹PySide/PyQt的實(shí)戰(zhàn)應(yīng)用。本書旨在幫助讀者以最短的時(shí)間掌握PySide 6/PyQt 6的基礎(chǔ)知識并能夠?qū)崙?zhàn)應(yīng)用,希望本書對有Python程序開發(fā)需求的讀者有幫助。
孫洋洋,就職于國營保險(xiǎn)公司資管部門,負(fù)責(zé)公司量化投研體系的開發(fā)與維護(hù)以及策略研發(fā)。熟悉多種編程語言,目前以Python為主。擅長量化投資與程序GUI開發(fā)、網(wǎng)絡(luò)爬蟲、機(jī)器學(xué)習(xí),在金融量化投資領(lǐng)域有多年工作經(jīng)驗(yàn)。王碩,現(xiàn)從事Python,Go和Java的相關(guān)工作,熱愛并長期專注于前端,大數(shù)據(jù)和高性能計(jì)算技術(shù)的研究,積累了大量的一線開發(fā)經(jīng)驗(yàn),具有豐富的工業(yè)級系統(tǒng)開發(fā)和運(yùn)維實(shí)戰(zhàn)經(jīng)驗(yàn)。
第1章 認(rèn)識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的進(jìn)展 3
1.1.3 PySide/PyQt相對于Qt的優(yōu)勢 4
1.1.4 PySide 6/PyQt 6與PySide 2/PyQt 5的關(guān)系 5
1.1.5 PyQt 5與PyQt 4 6
1.1.6 其他圖形界面開發(fā)庫 7
1.2 搭建PySide 6/PyQt 6環(huán)境 7
1.2.1 在Windows下使用PySide 6/PyQt 6環(huán)境 8
1.2.2 在Windows下自行搭建PySide 6/PyQt 6環(huán)境 8
1.2.3 在macOS和Linux下搭建PySide 6/PyQt 6環(huán)境 14
1.2.4 測試PySide 6/PyQt 6環(huán)境 16
1.3 PySide 6快捷工具簡介 16
1.3.1 Qt設(shè)計(jì)師 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的相關(guān)配置 23
1.4.3 Eric 7的基本使用 24
1.4.4 PyCharm的安裝 28
1.4.5 使用PyCharm配置PySide 6/PyQt 6環(huán)境 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的啟動(dòng)方式 40
第2章 Qt Designer的使用 43
2.1 Qt Designer快速入門 43
2.1.1 新建主窗口 44
2.1.2 窗口主要區(qū)域介紹 45
2.1.3 查看.ui文件 47
2.1.4 將.ui文件轉(zhuǎn)換為.py文件 49
2.1.5 將.qrc文件轉(zhuǎn)換為.py文件 54
2.1.6 界面與邏輯分離 54
2.2 布局管理入門 55
2.2.1 使用布局管理器進(jìn)行布局 56
2.2.2 使用容器控件進(jìn)行布局 59
2.3 Qt Designer實(shí)戰(zhàn)應(yīng)用 60
2.3.1 絕對布局 61
2.3.2 使用布局管理器進(jìn)行布局 63
2.3.3 其他流程補(bǔ)充 70
2.3.4 測試程序 73
2.4 信號與槽關(guān)聯(lián) 75
2.4.1 簡單入門 75
2.4.2 獲取信號與槽 80
2.4.3 使用信號/槽機(jī)制 85
2.5 菜單欄與工具欄 85
2.5.1 界面設(shè)計(jì) 85
2.5.2 效果測試 90
2.6 添加圖片(資源文件) 92
2.6.1 創(chuàng)建資源文件 92
2.6.2 添加資源文件 93
2.6.3 轉(zhuǎn)換資源文件 96
2.6.4 效果測試 97
第3章 基本窗口控件(上) 100
3.1 主窗口 100
3.1.1 窗口類型 100
3.1.2 創(chuàng)建主窗口 102
案例3-1 創(chuàng)建主窗口 103
3.1.3 移動(dòng)主窗口 106
3.1.4 添加圖標(biāo) 106
3.1.5 顯示狀態(tài)欄 107
3.1.6 窗口坐標(biāo)系統(tǒng) 107
3.2 QLabel 110
案例3-2 QLabel標(biāo)簽的基本使用 111
3.2.1 對齊 112
3.2.2 設(shè)置顏色 112
3.2.3 顯示HTML信息 112
3.2.4 滑動(dòng)與單擊事件 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和顏色設(shè)置 117
3.3.2 占位提示符、限制輸入長度、限制編輯 117
3.3.3 移動(dòng)指針 118
3.3.4 編輯 119
3.3.5 相關(guān)信號與槽 119
3.3.6 快捷鍵 120
3.3.7 隱私保護(hù):回顯模式 121
案例3-5 回顯模式的顯示效果 121
3.3.8 限制輸入:驗(yàn)證器 123
案例3-6 限制輸入:驗(yàn)證器 123
3.3.9 限制輸入:掩碼 124
案例3-7 輸入掩碼InputMask 125
3.4 QTextEdit和QPlainTextEdit——多行文本顯示 126
3.4.1 QTextEdit 126
案例3-8 QTextEdit的使用——支持HTML和Markdown 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 139
案例3-12 QPushButton的使用方法 140
3.5.3 QRadioButton、QGroupBox、QButtonGroup 142
案例3-13 QRadioButton的用法 143
3.5.4 QCheckBox 145
案例3-14 QCheckBox的使用方法 146
3.5.5 QCommandLinkButton 149
案例3-15 QCommandLinkButton的使用方法 149
3.6 QToolButton 151
案例3-16 QToolButton的使用方法 151
3.7 QComboBox 157
案例3-17 QComboBox的使用方法 158
3.7.1 查詢 159
3.7.2 增加 160
3.7.3 修改 160
3.7.4 刪除 162
3.7.5 信號與槽函數(shù) 162
3.7.6 模型/視圖框架 164
3.7.7 QFontComboBox 164
案例3-18 QFontComboBox的使用方法 166
3.8 QSpinBox和QDoubleSpinBox 168
案例3-19 QSpinBox的使用方法 169
3.8.1 步長和范圍 170
3.8.2 循環(huán) 170
3.8.3 前綴、后綴與千分隔符 170
3.8.4 特殊選擇 171
3.8.5 信號與槽 171
3.8.6 自定義顯示格式 172
案例3-20 QSpinBox的自定義格式顯示 172
案例3-21 QDoubleSpinBox的使用方法 173
3.9 日期時(shí)間 174
3.9.1 日期時(shí)間相關(guān)控件 174
3.9.2 QDateTimeEdit、QDateEdit和QTimeEdit 175
案例3-22 QDateTimeEdit控件的使用方法 175
3.9.3 QCalendarWidget 182
案例3-23 QCalendarWidget控件的使用方法 184
3.10 滑動(dòng)控件 185
3.10.1 QAbstractSlider 186
3.10.2 QSlider 187
案例3-24 QSlider的使用方法 188
3.10.3 QDial 189
案例3-25 QDial控件的使用方法 190
3.10.4 QScrollBar 191
案例3-26 QScrollBar控件的使用方法 192
3.11 QScrollArea 194
案例3-27 QScrollArea控件的使用方法 195
第4章 基本窗口控件(下) 198
4.1 對話框類控件(QDialog族) 198
4.1.1 對話框簡介 199
4.1.2 模式對話框 199
4.1.3 非模式對話框 200
案例4-1 QDialog的基本使用方法 200
4.1.4 擴(kuò)展對話框 205
案例4-2 QDialog擴(kuò)展對話框的使用方法 205
4.1.5 QMessageBox 207
案例4-3 QMessageBox控件的使用方法 208
4.1.6 QInputDialog 213
案例4-4 QInputDialog控件的使用方法 214
4.1.7 QFontDialog 216
案例4-5 QFontDialog控件的使用方法 216
4.1.8 QFileDialog 218
案例4-6 QFileDialog控件的使用方法 218
4.1.9 QColorDialog 223
案例4-7 QColorDialog控件的使用方法 224
4.1.10 QProgressDialog和QProgressBar 226
案例4-8 QProgressDialog和QProgressBar的使用方法 227
4.1.11 QDialogButtonBox 232
案例4-9 QDialogButtonBox控件的方法 234
4.2 窗口繪圖類控件 237
4.2.1 QPainter 237
案例4-10 QPainter控件的簡單用法 240
4.2.2 QBrush 242
案例4-11 QBrush的使用方法 245
4.2.3 QPen 247
案例4-12 QPen的方法 249
4.2.4 幾個(gè)繪圖案例 251
案例4-13 綜合使用QPainter、QBrush和QPen的方法 252
案例4-14 QPainter的使用方法 252
案例4-15 QPainter實(shí)時(shí)繪圖 254
案例4-16 繪制同心圓 255
4.2.5 QPixmap 256
4.2.6 QImage 258
案例4-17 QPixmap控件和QImage控件的使用方法 264
4.3 拖曳與剪貼板 267
4.3.1 QMimeData 268
案例4-18 QMimeData控件的使用方法 270
4.3.2 Drag與Drop 272
案例4-19 QDrag的使用方法1 273
案例4-20 QDrag的使用方法2 277
4.3.3 QClipboard 281
案例4-21 QClipboard控件的使用方法 282
4.4 菜單欄、工具欄、狀態(tài)欄與快捷鍵 284
4.4.1 菜單欄QMenu 285
案例4-22 QMenuBar、QMenu和QAction的使用方法 285
4.4.2 快捷鍵QkeySequence(Edit)、QShortcut 290
案例4-23 QShortcut的使用方法 294
案例4-24 QKeySequenceEdit的使用方法 295
4.4.3 工具欄QToolBar 298
案例4-25 QToolBar的使用方法 298
4.4.4 QStatusBar 302
案例4-26 QStatusBar控件的使用方法 302
4.5 其他控件 305
4.5.1 QFrame 305
案例4-27 QFrame的使用方法 307
4.5.2 QLCDNumber 309
案例4-28 QLCDNumber的使用方法 309
第5章 表格與樹 310
5.1 QListWidget 310
5.1.1 增/刪項(xiàng)目 311
5.1.2 選擇 311
5.1.3 外觀 313
5.1.4 工具、狀態(tài)、幫助提示 313
5.1.5 信號/槽 313
5.1.6 上下文菜單 314
案例5-1 QListWidget控件的使用方法 314
5.2 QTableWidget 323
5.2.1 創(chuàng)建 323
5.2.2 基于項(xiàng)目的操作 324
5.2.3 基于行列的操作 324
5.2.4 導(dǎo)航 324
5.2.5 表頭(標(biāo)題) 325
5.2.6 自定義小部件 325
5.2.7 調(diào)整行列大小 326
5.2.8 拉伸填充剩余空間 327
5.2.9 坐標(biāo)系 327
5.2.10 信號/槽 327
5.2.11 上下文菜單 327
案例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 綁定模型和初始化數(shù)據(jù) 344
5.5.2 增、刪、改、查、移 344
5.5.3 列表視圖布局 344
5.5.4 其他要點(diǎn) 346
案例5-4 QListView結(jié)合QStringListModel的使用方法 346
5.6 QTableView 350
5.6.1 綁定模型和初始化數(shù)據(jù) 351
5.6.2 模型(QStandardItemModel)的相關(guān)方法 351
5.6.3 視圖(QTableView)的相關(guān)方法 352
5.6.4 表頭(標(biāo)題,QHeaderView)的相關(guān)方法 353
5.6.5 上下文菜單 355
案例5-5 QTableView結(jié)合QStandardItemModel的使用方法 355
5.7 QTreeView 362
案例5-6 QTreeView控件結(jié)合QStandardItemModel模型的使用方法 365
案例5-7 QTreeView和QFileSystemModel的使用方法 366
5.8 自定義模型 367
案例5-8 QTableView控制和自定義模型的使用方法 368
5.9 自定義委托 374
案例5-9 QTableView和自定義委托的使用方法 374
5.10 Qt數(shù)據(jù)庫 381
5.10.1 Qt SQL簡介 381
5.10.2 連接數(shù)據(jù)庫 382
5.10.3 執(zhí)行SQL語句 386
案例5-10 數(shù)據(jù)庫的創(chuàng)建 387
5.10.4 數(shù)據(jù)庫模型 389
5.10.5 數(shù)據(jù)庫模型與視圖結(jié)合 393
案例5-11 QSqlQueryModel分頁視圖查詢 395
案例5-12 QSqlTableModel排序過濾表 399
案例5-13 QSqlRelationalTableModel關(guān)系表單 403
5.10.6 數(shù)據(jù)感知表單 406
案例5-14 QDataWidgetMapper數(shù)據(jù)感知表單 407
5.10.7 自定義模型與委托 409
案例5-15 數(shù)據(jù)庫自定義模型+委托案例 409
第6章 高級窗口控件 413
6.1 窗口風(fēng)格 413
6.1.1 設(shè)置窗口風(fēng)格 413
6.1.2 設(shè)置窗口樣式 414
6.1.3 設(shè)置窗口背景 415
6.1.4 設(shè)置窗口透明 418
案例6-1 WinStyle案例 418
6.2 布局管理 420
6.2.1 布局管理的基礎(chǔ)知識 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 QGridLayout的使用方法 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的使用方法 443
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 事件處理實(shí)現(xiàn)刷新 477
6.5 網(wǎng)頁交互 479
6.5.1 加載內(nèi)容 479
6.5.2 標(biāo)題和圖標(biāo) 479
6.5.3 QWebEnginePage的相關(guān)方法 479
6.5.4 運(yùn)行JavaScript函數(shù) 482
案例6-18 基于QWebEngineView實(shí)現(xiàn)基本的Web瀏覽功能 483
6.6 QSS的UI美化 486
6.6.1 QSS的基本語法規(guī)則 486
6.6.2 QSS選擇器的類型 487
6.6.3 QSS子控件 489
6.6.4 QSS偽狀態(tài) 489
6.6.5 顏色沖突與解決方法 490
6.6.6 繼承與多樣 491
6.6.7 Qt設(shè)計(jì)師與樣式表 492
案例6-19 QSS的使用方法 492
6.6.8 QDarkStyleSheet 496
案例6-20 QDarkStyle的使用方法 497
6.7 QML淺議 497
6.7.1 QML的基本概念 498
6.7.2 QML與JavaScript 498
6.7.3 在Python中調(diào)用QML 499
案例6-21 在Python中調(diào)用 499
案例6-22 將Python對象暴露給QML(一):上下文屬性 500
案例6-23 將Python對象暴露給QML(二):注冊類型 502
案例6-24 qml使用Python模型 504
案例6-25 在QML中調(diào)用Python屬性的方法 506
第7章 信號/槽和事件 511
7.1 信號/槽介紹 511
7.1.1 基本介紹 511
7.1.2 創(chuàng)建信號 513
7.1.3 操作信號 513
7.1.4 槽函數(shù) 514
7.2 信號/槽的案例 514
案例7-1 信號/槽的使用方法 515
7.2.1 內(nèi)置信號+內(nèi)置槽函數(shù) 515
7.2.2 內(nèi)置信號+自定義槽函數(shù) 517
7.2.3 自定義信號+內(nèi)置槽函數(shù) 517
7.2.4 自定義信號+自定義槽函數(shù) 518
7.2.5 斷開信號與槽連接 518
7.2.6 恢復(fù)信號與槽連接 519
7.2.7 裝飾器信號與槽連接 521
7.2.8 多線程信號與槽連接 522
7.3 信號/槽參數(shù) 523
案例7-2 信號與槽參數(shù) 523
7.3.1 內(nèi)置信號+默認(rèn)參數(shù) 524
7.3.2 自定義信號+默認(rèn)參數(shù) 524
7.3.3 內(nèi)置信號+自定義參數(shù)lambda 525
7.3.4 內(nèi)置信號+自定義參數(shù)partial 526
7.3.5 自定義信號+自定義參數(shù)lambda 527
7.3.6 自定義信號+自定義參數(shù)partial 528
7.4 基于Qt Designer的信號/槽 529
案例7-3 基于Qt Designer的信號/槽的使用方法 530
7.5 事件處理機(jī)制入門 532
7.5.1 事件和信號/槽的區(qū)別 533
7.5.2 常見事件類型 533
7.5.3 使用事件處理的方法 536
7.5.4 經(jīng)典案例分析 537
案例7-4 事件處理的機(jī)制方法1-2 537
案例7-5 事件處理機(jī)制和方法3 543
案例7-6 事件處理機(jī)制的方法4 546
第8章 Python的擴(kuò)展應(yīng)用 547
8.1 使用PyInstaller打包項(xiàng)目生成.exe文件 547
8.1.1 安裝PyInstaller 547
8.1.2 PyInstaller的用法與參數(shù) 548
8.1.3 PyInstaller案例 550
8.2 Pandas在PySide/PyQt中的應(yīng)用 552
8.2.1 qtpandas的安裝 552
8.2.2 官方案例解讀 553
8.2.3 設(shè)置提升的窗口控件 555
8.2.4 qtpandas的使用 557
8.3 Matplotlib在PyQt中的應(yīng)用 559
8.3.1 對MatplotlibWidget的解讀 560
8.3.2 設(shè)置提升的窗口控件 563
8.3.3 MatplotlibWidget的使用 564
8.3.4 更多擴(kuò)展 565
8.4 PyQtGraph在PyQt中的應(yīng)用 566
8.4.1 PyQtGraph的安裝 567
8.4.2 官方案例解讀 567
8.4.3 設(shè)置提升的窗口控件 569
8.4.4 PyQtGraph的使用 569
8.4.5 更多擴(kuò)展 573
8.5 Plotly在PyQt中的應(yīng)用 573
8.5.1 Plotly的安裝 574
8.5.2 案例解讀 574
8.5.3 設(shè)置提升的窗口控件 575
8.5.4 Plotly的使用 576
8.5.5 Plotly更多擴(kuò)展 579
8.5.6 Dash的使用 579
8.5.7 Dash的更多擴(kuò)展 583
第9章 實(shí)戰(zhàn)應(yīng)用 584
9.1 量化投資中的應(yīng)用 584
9.2 券商投研中的應(yīng)用 593
9.2.1 從爬蟲說起 594
9.2.2 程序解讀 595
附錄A Qt for Python代碼轉(zhuǎn)換 618
附錄B C++ to Python代碼轉(zhuǎn)換 624
附錄C 本書一些通用枚舉表格目錄 630
附錄D 優(yōu)秀PySide/PyQt開源項(xiàng)目推薦 631