Hola: Lo primero de todo, me presento. Soy nuevo por aquí.
Y ya metidos en el tema.
Tengo un pequeño dispositivo para leer la temperatura ambiente, através
del puerto usb, emulado a serie. La cuestión es que quiero tener una
pequeña ventana donde se visualice el valor de la temperatura.
Estoy intentando hacerlo de la siguiente manera:
1.- El diseño con glade -> temperatura.glade que transformo a .xml con
gtk-builder-convert
2.- El programa en sí -> temperatura.py
Pero me da un error de "entendimiento".
Os adjunto los archivos y el error que me da.
je...@servidor:~/Programacion/avr/proyectos/Comunicaciones_Serie$ python
termometro.py
Traceback (most recent call last):
File "termometro.py", line 81, in evento_leer_temperatura
Texto= self.label_Temperatura
AttributeError: App instance has no attribute 'label_Temperatura'
Entiendo que me dice que App no tiene el atributo label_Temperatura,
pero....
En fin, gracias de antemano, y un cordial saludo
Jesús Genicio
termometro.glade
Description: application/glade
#!/usr/bin/env python
import serial
import time
import cairo
import usb
import glob
import sys
import gobject
try:
import pygtk
pygtk.require("2.0")
except:
pass
try:
import gtk
import gtk.glade
except:
sys.exit(1)
def ftdi():
busses = usb.busses()
for bus in busses:
devices = bus.devices
for dev in devices:
if dev.idVendor== 1027 and dev.idProduct== 24577:
return 1
return 0
def puertos():
for i in glob.glob('/dev/ttyUSB*'):
try:
Puerto= serial.Serial( i, 19200, timeout= 1)
except:
Existe= 0
else:
Puerto.write("?")
idDevice= Puerto.readline(None, "\r")
if idDevice== "03a5b08768870d3f589cb7088699c989\r":
Puerto.close()
return i
return 0
def conectar():
if ftdi():
puerto= puertos()
if puerto != 0:
PuertoSerie= serial.Serial(puerto, 19200, timeout= 1)
while True:
PuertoSerie.write("T")
Temp= PuertoSerie.readline( None, "\r")
print( Temp)
PuertoSerie.close()
return Temp
class App:
def __init__(self):
builder = gtk.Builder()
builder.add_from_file("termometro.xml")
self.window = builder.get_object("Principal")
builder.connect_signals(self)
def delete_event(self, widget):
gtk.main_quit()
def evento_salir(self, widget):
gtk.main_quit()
def evento_leer_temperatura(self, widget):
Texto= self.label_Temperatura
Texto.modify_font(pango.FontDescription("sans 48"))
Texto.set_text( conectar())
def imprime(self, widget):
Texto= gtk.label_Temperatura
Texto.modify_font(pango.FontDescription("sans 48"))
Texto.set_text( "Hola")
if __name__ == "__main__":
try:
a = App()
# gobject.timeout_add( 1000, a.imprime( a))
gtk.main()
except KeyboardInterrupt:
pass
termometro.xml
Description: XML document
_______________________________________________ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
