Pada Selasa, 15 Mei 2018 22.55.52 UTC+7, Jan Sebastian menulis:
>
> I write an application that displays random number in real time graph, it
> run perfectly on windows but when I try it on raspberry pi it alwarys stop
> updating the graph, but the proses in the python shell is still running
> generate a rundom number and the program didn't.
>
> Any idea, how to fix it?
>
> the example of my code:
>
>
> from PyQt4 import QtCore,QtGui,uic
> from PyQt4.QtCore import QTime, QTimer
> import sys
> import time
> import threading
> from pyqtgraph import ViewBox, PlotWidget
> #import pyqtgraph as pg
> from pyqtgraph.Qt import QtCore, QtGui
> import numpy as np
> from blupblupshub import BlumBlumShub
> from TimeAxisItem import TimeAxisItem
> from collections import deque
> import random
>
>
> qtCreatorFile = "mejaGetar2.ui"
>
>
> Ui_MainWindow,QtBaseClass = uic.loadUiType(qtCreatorFile)
>
> class MyApp(QtGui.QTabWidget,Ui_MainWindow):
> akselerasi = 0
> threads = []
> threads2 = []
> varGraph1 = object
> aa = False
> def __init__(self):
>
> QtGui.QTabWidget.__init__(self)
> Ui_MainWindow.__init__(self)
> self.setupUi(self)
> self.akselerasi.setMinimum(0)
> self.akselerasi.setMaximum(30)
> self.akselerasi.setValue(0)
>
> self.akselerasi.sliderReleased.connect(self.getThread)
> self.graph1.setRange(xRange=None, yRange=[-1, 1 ])
> self.graph1.setLabel('bottom', 'time', 's')
> self.graph1.showGrid(x=True, y=True)
> #self.graph1.setLab('bottom',TimeAxisItem(orientation='bottom'))
> self.graph1.setMouseEnabled(x=False, y=False)
> MyApp.varGraph1 = self.graph1
>
> self.l1.setText(str(self.akselerasi.value()))
> #self.currentChanged.connect(self.forceCloseThread)
>
>
> def getThread(self):
>
> if self.sender() == self.akselerasi:
> MyApp.akselerasii = int(self.akselerasi.value())
>
> if MyApp.akselerasii > 0:
>
> thread1 = DynamicThread("akselerasi")
>
> if MyApp.aa == True:
> print("second")
> minRange = int(self.akselerasi.value()) * -1
> self.graph1.setRange(xRange=None, yRange=[minRange,
> int(self.akselerasi.value()) ])
> thread1.trigrer(MyApp.akselerasii)
>
> else:
> thread1.trigrer(MyApp.akselerasii)
> MyApp.threads2.append(thread1)
> minRange = int(self.akselerasi.value()) * -1
> self.graph1.setRange(xRange=None, yRange=[minRange,
> int(self.akselerasi.value()) ])
> MyApp.aa = True
>
> print("first")
> thread1.start()
> else:
> for t in MyApp.threads2:
> MyApp.aa = False
> t.stop()
> self.graph1.clear()
>
>
> class DynamicThread(threading.Thread,MyApp):
> intAkselerasi = 0
> ruuun = False
>
> def __init__(self,sub):
> threading.Thread.__init__(self)
>
> self.subject = sub
>
> def trigrer(self,num):
> DynamicThread.intAkselerasi = num
>
> def run(self):
> listData = []
> a = 0
> count = 0
> test = 0
> t = QTime()
> t.start()
> dataGraph = deque(maxlen=20)
> x1 = []
> y1 = []
>
> print("starting " + self.subject)
> dynamicGenerator = BlumBlumShub()
> curve = MyApp.varGraph1.plot(pen=(255,0,0))
> while DynamicThread.ruuun == True:
> if DynamicThread.intAkselerasi > 0:
> minus = DynamicThread.intAkselerasi *-1
> data = random.randint(minus,DynamicThread.intAkselerasi)
>
> dataGraph.append({'x': t.elapsed(), 'y': data})
> x1 = [item['x'] for item in dataGraph]
> y1 = [item['y'] for item in dataGraph]
> curve.setData(x=x1, y=y1)
> print("test: ",data)
> print("\n")
> a = a + 1
>
> time.sleep(0.5)
>
> else:
> DynamicThread.ruuun = False
> print("stop")
> break
> print("stoping " + self.subject)
> dataGraph = []
> x1 = []
> y1 = []
>
> def start(self):
> DynamicThread.ruuun = True
> super(DynamicThread,self).start()
>
> def stop(self):
> DynamicThread.ruuun = False
>
> if __name__ == "__main__":
> app = QtGui.QApplication(sys.argv)
> window = MyApp()
> window.show()
> sys.exit(app.exec_())
>
>
>
>
--
You received this message because you are subscribed to the Google Groups
"pyqtgraph" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/pyqtgraph/8867569c-5ae0-4d1a-8a56-8d2e8d7dad44%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.