
书: https://pan.baidu.com/s/1hMg-9fMkkzntAfHoLymQMA?pwd=2tx9
笔记如下:
- PyQt框架介绍:PyQt是Python绑定Qt库的工具,用于开发跨平台GUI应用,支持Qt的所有功能模块(如QtWidgets、QtCore、QtGui)。
- 基本窗口创建:
“`python
from PyQt5.QtWidgets import QApplication, QMainWindow
app = QApplication([])
window = QMainWindow()
window.show()
app.exec_()
3. **常用控件**:
- `QLabel`(标签)、`QPushButton`(按钮)、`QLineEdit`(输入框)、`QComboBox`(下拉框)。
- 布局管理:`QVBoxLayout`(垂直布局)、`QHBoxLayout`(水平布局)、`QGridLayout`(网格布局)。
4. **信号与槽机制**:
- 控件事件(如按钮点击)通过信号(Signal)触发槽函数(Slot):
python
button.clicked.connect(self.on_button_click)
5. **数据可视化库集成**:
- Matplotlib嵌入:`FigureCanvasQTAgg`将Matplotlib图形嵌入Qt窗口。
- PyQtGraph:高性能绘图库,适合实时数据可视化。
6. **模型-视图编程**:
- `QTableView`显示表格数据,配合`QStandardItemModel`实现数据绑定。
- 自定义模型:继承`QAbstractTableModel`实现数据逻辑。
7. **多线程处理**:
- 使用`QThread`防止GUI线程阻塞,通过信号更新界面:
python
class Worker(QThread):
result_signal = pyqtSignal(str)
def run(self):
# 耗时操作
self.result_signal.emit(“Done”)
8. **文件与对话框**:
- `QFileDialog`选择文件,`QMessageBox`弹出提示框。
9. **样式表(QSS)**:
- 类似CSS的语法美化控件:
python
button.setStyleSheet(“background-color: #4CAF50; color: white;”)
“`
- 2D绘图:
- 使用
QPainter
绘制自定义图形(线条、矩形、文本等)。
- 使用
- 3D可视化:
- 通过
QtDataVisualization
模块创建3D图表(如散点图、曲面图)。
- 通过
- 数据库连接:
QSqlDatabase
连接SQLite/MySQL,QSqlTableModel
绑定数据到表格。
- 事件处理:
- 重写
mousePressEvent
、keyPressEvent
等处理用户交互。
- 重写
- 国际化支持:
- 使用
QtLinguist
工具实现多语言切换。
- 使用
- 打包与部署:
- 用
PyInstaller
或cx_Freeze
将应用打包为可执行文件。
- 用
- 实战案例:数据可视化仪表盘:
- 结合PyQt和Matplotlib实现动态更新的折线图、柱状图。
- 信号槽高级用法:
- 自定义信号:
custom_signal = pyqtSignal(int)
,跨组件通信。
- 自定义信号:
- 动画效果:
QPropertyAnimation
实现控件属性(位置、透明度)动画。
- Web集成:
QWebEngineView
嵌入Web页面,与JavaScript交互。
- 性能优化:
- 避免频繁界面刷新,使用
QPixmap
缓存图像,减少主线程阻塞。
- 避免频繁界面刷新,使用