Python - Llamada a método de otra clase

 
Vista:

Llamada a método de otra clase

Publicado por Carlos (1 intervención) el 17/06/2014 15:25:51
Buenas, estoy intentando insertar un valor desde un thread en una clase llamada Principal donde está la interfaz PyQt con un lineEdit.

Básicamente el programa lee el valor que le manda el arduino para dejarlo en dicho lineEdit. El problema está en que no sé de qué forma meter ese valor desde el método run del thread que es el que lee los valores del arduino.

La linea importante que falla está en negrita aquí abajo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import sys
import serial
import threading
from time import sleep
from PyQt4 import QtCore, QtGui
from temperaturaUI import Ui_Form
 
 
class Principal(QtGui.QWidget):
	def __init__(self):
		QtGui.QWidget.__init__(self)
 
		self.aplicacio = Ui_Form()
		self.aplicacio.setupUi(self)
 
		self.aplicacio.sortir_Button.clicked.connect(exit)
 
		self.aplicacio.connectar_Button.clicked.connect(self.connectar)
 
	def connectar(self):
		try:
			arduino = serial.Serial('/dev/ttyACM0', 9600)
			print "Connectat amb èxit"
			temperatura = fil(0, arduino)
			temperatura.start()
		except:
			print "Impossible connectar a l'Arduino"


class fil(threading.Thread):
	def __init__(self, temp, serie):
		threading.Thread.__init__(self)
		self.temp = temp
		self.serie = serie

	def run(self):
		try:
			while 1:
				self.temp = self.serie.readline()
				if self.temp != 0:
					Principal.self.aplicacio.actual_lineEdit.setText(self.temp)
				sleep(0.2)
		except:
			print "Error al llegir de l'Arduino"
 
 
 
def main():
	app = QtGui.QApplication(sys.argv)
	aplicacio = Principal()
	aplicacio.show()
	sys.exit(app.exec_())
 
if __name__ == '__main__':
	main()


Un abrazo y ojalá me podáis ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder