El modulo pubsub te sirve, pero igual es mejor que empieces por el
principio: usar los eventos de wx, igual que manejarias un click de raton.
Primero creas un nuevo identificador de evento, y un evento wx
personalizado, que puede llevar incluidos datos si quieres:
EVT_TABLA_MODIFICADA = wx.NewId()
class EventoDatos(wx.PyEvent):
def __init__(self, datos, evt=EVT_TABLA_MODIFICADA):
wx.PyEvent.__init__(self)
self.SetEventType(evt)
self.datos = datos
Ahora, en el __init__ de TU_FRAME, conectas este tipo de evento a un metodo:
self.Connect(-1, -1, EVT_TABLA_MODIFICADA, self.actualizar_datos)
Y a partir de ahi, cada vez que llames a un wx.PostEvent(TU_FRAME,
EventoDatos(los_datos)), lo recibe este metodo de TU_FRAME:
def actualizar_datos(self, event=None):
data = event.data
De hecho, este deberia ser el único que rellena tu widget, desde la
primera vez (que pasas de cero datos a un monton, lo que lanza el evento)
Luego tienes por ahi código que se encarga de vigilar la tabla, que
puede ser tambien un Thread separado (o no), por ejemplo:
class VigilaDatos(threading.Thread):
def __init__(self, function):
self.sleep = 30
threading.Thread.__init__(self)
self.running = True
self.start()
def run(self):
while self.running:
self.mira_la_tabla()
time.sleep(self.sleep)
def stop(self):
self.running = False
def mira_la_tabla(self):
if la_tabla_cambia:
wx.PostEvent(TU_FRAME, EventoDatos(los_datos))
Como no puedes tener una señal desde el otro programa que modifica la
tabla (ahi entraria el modulo signals, para que te comunicara el evento
entre programas), tendras que decidir cuanto tiempo esperas para
comprobar si la tabla ha cambiado, pero cada 30 segundos tampoco va a
consumir mucho por que cuentes los registros, y sólo cuando cambien
disparas el evento.
Suerte.
El 20/06/2013 21:17, Hiram escribió:
Muchas gracias por sus respuestas en el transcurso del día estaré
leyendo sobre lo que mencionan Txema y Eduard, Juan Ignacio la otra
aplicación no esta escrita en Python, esta escrita en Java.
Alvaro y Enrique lo que mencionas lo había pensado, pero al no conocer
el tiempo de llegada del nuevo registro, siento que consumiría algo de
recursos estar consultando la tabla cada X tiempo, ya que como
mencione los registros pueden tardar un minuto dos hasta varias horas
aun así volveré a analizar sus respuestas.
De ante mano muchas gracias a todos.
2013/6/20 Enrique Fernandez <en_fernan...@yahoo.com.ar
<mailto:en_fernan...@yahoo.com.ar>>
Yo, con un timer que consulte la cantidad de registros
select count(*) from ....
Saludos
Enrique Fernandez
El 20/06/2013 07:52 a.m., Alvaro Manrique escribió:
Yo lo haría como un timer.
Que cada cierto tiempo ejecute la consulta y muestre los datos
del último alumno.
-----------------------------
Alvaro Manrique
Programador
Skype: alvaro_manrique
Twitter: @AJ_Manrique
Venezuela
-----------------------------
El 20/06/2013 05:33, "Juan Ignacio" <euriba...@gmail.com
<mailto:euriba...@gmail.com>> escribió:
> Ahora supongamos que la tabla alumnos es poblada por alguna
otra
> aplicación cada cierto tiempo
Esa otra aplicación ¿Está escrita en Python? ¿Es modificable?
_______________________________________________
Python-es mailing list
Python-es@python.org <mailto:Python-es@python.org>
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es@python.org <mailto:Python-es@python.org>
http://mail.python.org/mailman/listinfo/python-es
FAQ:http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es@python.org <mailto:Python-es@python.org>
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
--
Hiram Zuñiga Romero
blog: http://lam-h.blogspot.com/
mail: hiram...@gmail.com <mailto:hiram...@gmail.com>
mailwork: hi...@cenidet.edu.mx
<mailto:hi...@cenidet.edu.mx>
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/