PySide 6/PyQt 6快速開發與實戰( 簡體 字) | |
作者:孫洋洋,王碩 | 類別:1. -> 程式設計 -> Python |
出版社:電子工業出版社 | 3dWoo書號: 56181 詢問書籍請說出此書號! 有庫存 NT售價: 695 元 |
出版日:11/1/2022 | |
頁數:660 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121445255 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第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設計師 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 主窗口 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 限制輸入:驗證器 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 信號與槽函數 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 循環 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 日期時間 174 3.9.1 日期時間相關控件 174 3.9.2 QDateTimeEdit、QDateEdit和QTimeEdit 175 案例3-22 QDateTimeEdit控件的使用方法 175 3.9.3 QCalendarWidget 182 案例3-23 QCalendarWidget控件的使用方法 184 3.10 滑動控件 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 擴展對話框 205 案例4-2 QDialog擴展對話框的使用方法 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 幾個繪圖案例 251 案例4-13 綜合使用QPainter、QBrush和QPen的方法 252 案例4-14 QPainter的使用方法 252 案例4-15 QPainter實時繪圖 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 菜單欄、工具欄、狀態欄與快捷鍵 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 增/刪項目 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 基于項目的操作 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 上下文菜單 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 綁定模型和初始化數據 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 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 事件處理實現刷新 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選擇器的類型 487 6.6.3 QSS子控件 489 6.6.4 QSS偽狀態 489 6.6.5 顏色沖突與解決方法 490 6.6.6 繼承與多樣 491 6.6.7 Qt設計師與樣式表 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中調用QML 499 案例6-21 在Python中調用 499 案例6-22 將Python對象暴露給QML(一):上下文屬性 500 案例6-23 將Python對象暴露給QML(二):注冊類型 502 案例6-24 qml使用Python模型 504 案例6-25 在QML中調用Python屬性的方法 506 第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 本書本書共有9章,包含PySide 6/PyQt 6常用知識及一些經典應用。每個章節側重點不同,但相對獨立,讀者根據目錄即可獲取自己所需的內容。第1章介紹PySide/PyQt的入門知識;第2章介紹Qt Designer的詳細用法;第3章和第4章介紹PySide/PyQt的基本窗口控件的使用方法;第5章介紹PySide/PyQt的特殊控件——表格與樹;第6章介紹一些高級窗口控件;第7章介紹信號/槽和事件;第8章介紹Python的擴展應用;第9章介紹PySide/PyQt的實戰應用。本書旨在幫助讀者以最短的時間掌握PySide 6/PyQt 6的基礎知識并能夠實戰應用,希望本書對有Python程序開發需求的讀者有幫助。
|