python qthread 线程退出_Python+PyQt5 pyqtgraph

本篇接上一篇线程QThread,QThread线程生成随机数,然后通过pyqtgraph绘制随机数曲线。pyqtgraph被大量应用于Qt GUI平台(通过PyQt或PySide),因为它的高性能图形和numpy可用于大量数据处理。 特别注意的是,pyqtgraph使用了Qt的GraphicsView框架,它本身是一个功能强大的图形系统; 我们将最优化和简化的语句应用到这个框架中,以最小的工作量实现数据可视化。pyqtgraph是纯Python图形GUI库,它充分利用PyQt和PtSide的高质量的图形表现水平和NumPy的快速科学计算与处理能力,在数学、科学和工程领域都有广泛的应用。 其主要目标是:

  1. 为数据(绘图,视频等)提供快速可交互式图形显示。
  2. 提供帮助快速开发应用程序的工具(例如,Qt Designer中使用的属性树)。

运行pyqtgraph例子

  • example中提供了大量的案例,运行之后即可查看案例。
import pyqtgraph.examplespyqtgraph.examples.run()
python qthread 线程退出_Python+PyQt5 pyqtgraph_第1张图片

案例

python qthread 线程退出_Python+PyQt5 pyqtgraph_第2张图片

运行案例

绘制轴

  • graph = pg.PlotWidget():实例化一个PlotWidget。
  • self.gridLayout.addWidget:在gridlayout中添加graph。
  • graph.setLabel:设置轴标签。
  • graph.setYRange(0, 100):设置X轴范围。
  • graph.setXRange(0, 201):设置Y轴范围。
  • graph.showGrid(x=True, y=True):是否显示栅格。
def drawGraph(self):    graph = pg.PlotWidget()    graph.setBackground([255, 255, 255])    self.gridLayout.addWidget(graph)    graph.setLabel(axis='left', text='random')  graph.setLabel    graph.showGrid(x=True, y=True)    self.curve = graph.plot(pen='r')

绘制曲线

  • 定义一个data列表,数据长度大于200时候,把新数据添加到最后一个,覆盖第一个数据。
def drawCurve(self, value):    history_length = 200    global count    if count < history_length:        self.data.append(value)        count += 1    else:        self.data[:-1] = self.data[1:]        self.data[-1] = value    self.curve.setData(self.data)

重写QThread里的run函数

  • while循环,每0.5秒生成一个随机数。
def run(self):    while True:        i = random.randint(0, 100)        time.sleep(0.5)        self.trigger.emit(i)

运行一下

python qthread 线程退出_Python+PyQt5 pyqtgraph_第3张图片

random

本篇介绍PyQt5的pyqtgraph,如果需要源代码可关注私聊,感谢支持!!!!

你可能感兴趣的:(python,qthread,线程退出)