PythonQtGUI与数据可视化编程(王维波栗宝鹃张晓东)

书: https://pan.baidu.com/s/1hMg-9fMkkzntAfHoLymQMA?pwd=2tx9
笔记如下:

  1. PyQt框架介绍:PyQt是Python绑定Qt库的工具,用于开发跨平台GUI应用,支持Qt的所有功能模块(如QtWidgets、QtCore、QtGui)。
  2. 基本窗口创建
    “`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;”)
“`

  1. 2D绘图
    • 使用QPainter绘制自定义图形(线条、矩形、文本等)。
  2. 3D可视化
    • 通过QtDataVisualization模块创建3D图表(如散点图、曲面图)。
  3. 数据库连接
    • QSqlDatabase连接SQLite/MySQL,QSqlTableModel绑定数据到表格。
  4. 事件处理
    • 重写mousePressEventkeyPressEvent等处理用户交互。
  5. 国际化支持
    • 使用QtLinguist工具实现多语言切换。
  6. 打包与部署
    • PyInstallercx_Freeze将应用打包为可执行文件。
  7. 实战案例:数据可视化仪表盘
    • 结合PyQt和Matplotlib实现动态更新的折线图、柱状图。
  8. 信号槽高级用法
    • 自定义信号:custom_signal = pyqtSignal(int),跨组件通信。
  9. 动画效果
    • QPropertyAnimation实现控件属性(位置、透明度)动画。
  10. Web集成
    • QWebEngineView嵌入Web页面,与JavaScript交互。
  11. 性能优化
    • 避免频繁界面刷新,使用QPixmap缓存图像,减少主线程阻塞。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注