Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQtGraph PlotWidget:如何强制为“绘制”绘制每个图形(更改范围);“实时”;策划_Python_Plot_Real Time_Pyqtgraph - Fatal编程技术网

Python PyQtGraph PlotWidget:如何强制为“绘制”绘制每个图形(更改范围);“实时”;策划

Python PyQtGraph PlotWidget:如何强制为“绘制”绘制每个图形(更改范围);“实时”;策划,python,plot,real-time,pyqtgraph,Python,Plot,Real Time,Pyqtgraph,我试图让PlotWidget移动(从左到右)非常快,就像是一个心电图。下面是一个我想要的示例(除了他使用了PyQwt(这与我的projet不兼容,因为我使用的是PySide(而不是PyQt))以及我希望X轴也从左向右移动): 但是,我不知道怎么做。我可以绘制抓斗,我可以使用以下方法使其从左向右移动: myPlotWidget.setXRange(0, 100) 然后 这使得它看起来像是从左向右移动(1个单位),但我现在不知道如何使它平滑和自动。我尝试做一个循环,看起来像这样: for i

我试图让PlotWidget移动(从左到右)非常快,就像是一个心电图。下面是一个我想要的示例(除了他使用了PyQwt(这与我的projet不兼容,因为我使用的是PySide(而不是PyQt))以及我希望X轴也从左向右移动):

但是,我不知道怎么做。我可以绘制抓斗,我可以使用以下方法使其从左向右移动:

 myPlotWidget.setXRange(0, 100)
然后

这使得它看起来像是从左向右移动(1个单位),但我现在不知道如何使它平滑和自动。我尝试做一个循环,看起来像这样:

 for i in range(1000):
     myPlotWidget.setXRange(10+i, 100+i, update=True)
但是在循环过程中,绘图没有更新…绘图只在循环结束时更新,所以我看不到它从左到右“移动”,我只有最终结果

有人能帮我吗?我有没有办法强制重画1000次的循环

我第一次想它的计算速度太快了,所以我尝试了这个

 for i in range(1000):
     myPlotWidget.setXRange(10+i, 100+i, update=True)
     time.sleep
但当然,它不起作用


非常感谢您的帮助!

在循环结束时,当它被更新时,您会看到类似于
myPlotWidget.update()
,或
myPlotWidget.canvas.draw()
,对吗


只需将其移动到for循环中。但是,如果您试图绘制大量数据,这将变得很慢。

请参阅:否;QWidget.update()只计划稍后重新绘制。您必须调用QApplication.processEvents()或者返回Qt事件循环。Luke是对的,非常感谢您的帮助。它与QApplication.processEvents()完美配合。您能否将其作为问题的答案(而不是评论)发布给未来可能有相同问题的人。我很高兴将其作为“有用的答案”进行检查:(1)再次感谢您
 for i in range(1000):
     myPlotWidget.setXRange(10+i, 100+i, update=True)
     time.sleep