程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将进度条或仪表小部件添加到 PyQtGraph大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决将进度条或仪表小部件添加到 PyQtGraph?

开发过程中遇到将进度条或仪表小部件添加到 PyQtGraph的问题如何解决?下面主要结合日常开发的经验,给出你关于将进度条或仪表小部件添加到 PyQtGraph的解决方法建议,希望对你解决将进度条或仪表小部件添加到 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,请注明来意。
标签:PyQtGraph