背景:
这是一个实时更新图,它通过QTimer()实例进行更新。
已尝试删除所有非必需的代码。缓冲区和通讯任务已删除,一个简单的数字数组已用于填充数据。
目标:
问题:
我的理解是,每次调用name =“ exampleText”时,图例项都会创建一个新的列表项,但是,文档使我认为这仅应在第一次调用时发生。我应该如何实例化此对象,以便可以正确地“调用”该对象?例如plot1 = dlg.graphicsView ... etc
我想用当前值不断更新标签。理想情况下,这将是文本项,而不是图例,因为图例不应更改。在图表上更新文本值的最理想方法是什么?
简化的代码示例:
注意:.ui文件是pyqtgraph提升的graphicsView小部件,有关详细信息,请参见文档Embedding widgets inside PyQt applications
from PyQt5 import QtWidgets, uic, QtCore
import time #Delay
import pyqtgraph #Graphing
pyqtgraph.setConfigOption('background', 'w') #Set pyqtplot background as white
app = QtWidgets.QApplication([]) #Instantiate instance of our application
dlg = uic.loadUi("EthernetUI.ui") #Load the XML Ui file
dlg.graphicsView.addLegend() #Create a legend
plot1 = dlg.graphicsView
def graphUpdate(): #Separate graphing function for QTimer
try:
plot1.clear() #Clears plot before rewrite
plot1.plot([1,2,3,4,5,6,7,8,9,10], pen = 'r', name = "HELLO WORLD")
except:
print("EXCEPTION")
pass
timer = QtCore.QTimer() #Instantiate QTimer
timer.timeout.connect(graphUpdate) #When timer fires, run graphUpdate()
timer.start(1000) #Timer period of 100ms
dlg.show() #Show GUI
app.exec() #Execute GUI