大佬教程收集整理的这篇文章主要介绍了将进度条或仪表小部件添加到 PyQtGraph,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
目前,我有一个 PyQtGraph 脚本,我想向 GUI 添加一个仪表/进度条,
实现这一目标的最简单方法是什么?
pyqtgraph 似乎不直接支持进度条,但可以使用小部件导入?
我的目标是在 update() 调用中刷新仪表/进度条。
from pyqtgraph.Qt import QtGui,QtCore
import numpy as np
import pyqtgraph as pg
from pyqtgraph.ptime import time
import struct
from struct import pack,unpack
import socket
app = QtGui.QApplication([])
data = []
data_throttle = []
data_brake = []
data_steering = []
data_state = []
data_error = []
pg.setConfigOption('BACkground',(0,0))
#pg.setConfigOption(antialias=TruE)
win = pg.GraphicsWindow()
win.resize(1600,1000)
p1 = win.addplot(title="Sequence",row=0,col=1)
p1.setwindowtitle('Sequence')
p1.setRange(QtCore.QRectF(0,100,150))
p1.showGrID(True,TruE)
p2 = win.addplot(title="Throttle",col=2)
p2.setwindowtitle('Throttle')
p2.setRange(QtCore.QRectF(0,255))
p2.showGrID(True,TruE)
p3 = win.addplot(title="Brake",col=3)
p3.setwindowtitle('Brake')
p3.setRange(QtCore.QRectF(0,255))
p3.showGrID(True,TruE)
p4 = win.addplot(title="Steering",row=1,col=1)
p4.setwindowtitle('Steering')
p4.setRange(QtCore.QRectF(0,-1,2))
p4.showGrID(True,TruE)
p5 = win.addplot(title="Vehicle State",col=2)
p5.setwindowtitle('Vehicle State')
p5.setRange(QtCore.QRectF(0,10))
p5.showGrID(True,TruE)
P6 = win.addplot(title="Errors",col=3)
P6.setwindowtitle('Errors')
P6.setRange(QtCore.QRectF(0,10))
P6.showGrID(True,TruE)
P7 = win.addplot(title="Counter",col=4)
p8 = win.addplot(title="Counter",col=4)
Font=QtGui.QFont()
Font.setPixelSize(300)
anchor = pg.TextItem()
anchor.setText("0")
anchor.setcolor(QtGui.Qcolor(255,255,255))
anchor.setFont(Font)
anchor1 = pg.TextItem()
anchor1.setText("0")
anchor1.setcolor(QtGui.Qcolor(255,255))
anchor1.setFont(Font)
P7.addItem(anchor)
P7.showGrID(false,falsE)
P7.hIDeAxis('bottom')
P7.hIDeAxis('left')
p8.addItem(anchor1)
p8.showGrID(false,falsE)
p8.hIDeAxis('bottom')
p8.hIDeAxis('left')
curve = p1.plot(pen='r')
curve2 = p2.plot(pen='b')
curve3 = p3.plot(pen='g')
curve4 = p4.plot(pen='y')
curve5 = p5.plot(pen='r')
curve6 = P6.plot(pen='b')
# Receive UDP packets transmitted by a broadcasTing service
RECEIVE_IP = ''
RECEIVE_PORT = 2337
RECEIVE_ADDRESS = (RECEIVE_IP,RECEIVE_PORT)
recv_socket = socket.socket(socket.AF_INET,socket.soCK_DGRAM)
recv_socket.bind(RECEIVE_ADDRESS)
JOY_CODE = '=HBBBhHQQB'
ACK_CODE = '=HHBBHBBhBqB'
ptr = 0
lastTime = time()
fps = None
def update():
global recv_socket,fScale
global curve,data,data_throttle,data_brake,data_steering,ptr,p,lastTime,fps,data_state,data_error
recv_message,address = recv_socket.recvfrom(22)
message_ID,ack_payload,ack_seq,vehicle_state,vehicle_speed,throttle,brake,steering,error,@R_489_6561@amp,checksum = struct.unpack(ACK_CODE,recv_messagE)
#data = throttle
data.append(ack_seq)
data = data[-100:]
data_throttle.append(throttlE)
data_throttle = data_throttle[-100:]
data_brake.append(brakE)
data_brake = data_brake[-100:]
data_steering.append(steering / 32768)
data_steering = data_steering[-100:]
vehicle_state = vehicle_state & 0x07
data_state.append(vehicle_statE)
data_state = data_state[-100:]
data_error.append(error)
data_error = data_error[-100:]
curve.setData(data,_callSync='off')
curve2.setData(data_throttle,_callSync='off')
curve3.setData(data_brake,_callSync='off')
curve4.setData(data_steering,_callSync='off')
curve5.setData(data_state,_callSync='off')
curve6.setData(data_error,_callSync='off')
#updating Text Value
anchor.setText(str(vehicle_statE))
anchor1.setText(str(vehicle_statE))
Now = time()
dt = Now - lastTime
lastTime = Now
app.processEvents() ## force complete redraw for every plot
timer = QtCore.QTimer()
timer.timeout.connect(updatE)
timer.start(0)
## Start Qt event loop unless running in interactive mode.
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore,'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的将进度条或仪表小部件添加到 PyQtGraph全部内容,希望文章能够帮你解决将进度条或仪表小部件添加到 PyQtGraph所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。