【推荐语】
"Python是应用广泛、简单的编程语言之一,Qt是的桌面程序开发库之一,PyQt是Python与Qt结合的产物。 PyQt是Python与Qt的结合,因此它既可以利用Python强大而又简洁的语法和强大的生态,又不会丢失Qt强大能。"
【目录】
第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工具
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 快捷键 1
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- 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 非模式对话框 0
案例4-1 QDialog的基本使用方法 0
4.1.4 扩展对话框 5
案例4-2 QDialog扩展对话框的使用方法 5
4.1.5 QMessageBox 7
案例4-3 QMessageBox控件的使用方法 8
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- 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 布局管理 4
6.2.1 布局管理的基础知识 4
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- 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
返回顶部