I'm trying to run 4 threads that would independently draw pictures. Unfortunately I can not do it. Please tell me how to edit this piece of code to achieve the goal.
class My_Windows(QtGui.QTabWidget): def __init__(self, parent=None): QtGui.QTabWidget.__init__(self, parent) uic.loadUi("UI/NewDesc.ui", self) self.wind_dialog = uic.loadUi('UI/dialog.ui') self.connect(self.reciev, QtCore.SIGNAL("clicked()"), self.on_start) self.region400=pg.LinearRegionItem() # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² data400 = self.graphicsView400 data800 = self.graphicsView800 data1200 = self.graphicsView1000 data2400 = self.graphicsView2400 # ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΡΠΈΠ΅ΠΌΠ° self.tread_400 = Tread_400(value_400.arr400,value_400.maxhold400,self.plota400,self.plotb400,0) self.tread_800 =Tread_400(value_800.arr800,value_800.maxhold800,self.plota800,self.plotb800,1) self.tread_1200 = Tread_400(value_1200.arr1200, value_1200.maxhold1200, self.plota1200, self.plotb1200,2) self.tread_2400 = Tread_400(value_2400.arr2400, value_2400.maxhold2400, self.plota2400, self.plotb2400,3) def on_start(self): value_400.flag400.value = 1 value_800.flag800.value = 1 value_1200.flag1200.value = 1 value_2400.flag2400.value = 1 self.thread_demod_400.quit() self.thread_demod_800.quit() self.thread_demod_1200.quit() self.thread_demod_2400.quit() if self.tread_400.isRunning()==False: self.tread_400.start() print("FUUUCK" ) self.tread_800.start() self.tread_1200.start() self.tread_2400.start() class Tread_400(QtCore.QThread): def __init__(self,array_data,array_maxhold,plot_data,plot_maxhold,number): self.number=number self.plot_maxhold=plot_maxhold self.plot_data1=plot_data self.array_data = array_data self.array_maxhold = array_maxhold QtCore.QThread.__init__(self) self.timer1 = QtCore.QTimer() self.freq_x=np.arange(4097) def run(self): self.timer1.timeout.connect(self.plot_data) self.timer1.start(1) print(self.number) def plot_data(self): app.processEvents() print(self.number) self.plot_data1.setData(self.array_data) #signal.symiirorder1(,2,0.7)) self.plot_maxhold.setData(self.array_maxhold, pen='r') if __name__ == '__main__': import sys app = QtGui.QApplication([]) window = My_Windows() window.show() if __name__ == '__main__': if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): QtGui.QApplication.instance().exec_()