前期软件安装及配置见: (一)Pyside2 + QtDesigner 软件安装及配置
Python
语言的数据可视化(绘图)方法常用的有 Matplotlib
和 PyQtGraph
。本案例采用 PyQtGraph
进行操作。其安装方法见: 前期软件安装及配置
QtDesigner
界面上能够放置的都是 Qt
的内置控件,而 PyQtGraph
里的 PlotWidget
属于第三方控件,在 QtDesigner
中并不存在,需要进行一定的设置。
QtDesigner
中创建一个 Wedget
控件,然后右击鼠标,点击 提升为…PlotWidget
plotgraph
widget
的属性便从 QWidget
便为了 PlotWidget
from PySide2.QtWidgets import QApplication
from PySide2.QtUiTools import QUiLoader
import pyqtgraph as pg
import numpy as np
class CurvShow:
def __init__(self):
# 从文件中加载UI定义
loader = QUiLoader()
# pyside2 一定要使用registerCustomWidget
# 来注册 ui 文件中的第三方控件,这样加载的时候
# loader才知道第三方控件对应的类,才能实例化对象
loader.registerCustomWidget(pg.PlotWidget)
self.ui = loader.load('pic.ui')
# widget 是控件名称,需要注意
self.pw = self.ui.widget
self.pw.setBackground('w')
self.pw.setLabel('left', '幅值')
self.pw.setLabel('bottom', '弧度')
self.ui.pushButton.clicked.connect(self.sin_curv)
def sin_curv(self):
t = np.arange(-5, 5, 0.01)
y = np.sin(t)
self.pw.clear()
self.pw.setTitle('正弦函数曲线', size='12pt')
self.pw.plot(t, y, pen=pg.mkPen('b'))
if __name__ == '__main__':
app = QApplication([])
stats = CurvShow()
stats.ui.show()
app.exec_()