Hola;
Tengo una duda que es como pausar un programar que este trabajando con Tkinter al pulsar un tecla, es decir, que se paren todas las animaciones.
| |||
Respuesta: Pausar mi programa
Código python:
Por ejemplo me gustaria para esta animacion simple pero por lo que e visto al hacer un evento de teclado este no se realiza hasta que acaba toda la animacion no cuando pulso la tecla.Ver original Un saludo y gracias por tu ayuda Última edición por AlvaroG; 26/11/2009 a las 08:18 Razón: resaltado de sintaxis |
| |||
Respuesta: Pausar mi programa Si no se realiza hasta que acaba la animación, debe ser porque el hilo que recibe la entrada del teclado está ocupado generando la animación. Quizás puedas lograr lo que buscas haciendo que la animación sea realizada por un hilo diferente al que se encarga de generar la interfaz de usuario. De esta forma, en el hilo animador puedes en cada paso comprobar si cierta variable está definida o tiene un valor determinado. A la vez, el valor de esa variable puede ser actualizado por el hilo que queda listo para recibir la entrada del teclado (o de algún botón de la ventana) Puede que sea una solución poco elegante, pero es la que se me ocurre ahora mismo. Saludos. |
| |||
Respuesta: Pausar mi programa Hola, Ahora tengo otro prblema y es que cuando creo mi clase hilo y ejecuto:
Código:
Al hacer el t.start me hace bien las llamadas a los metodos de nodo pero cuando llega a link1_2 me dice que "global name link1_2 is not defined", no comprendo porque si funciona con nodo y no con link que son las dos clases muy similares. import threading class MiThread(threading.Thread, nodo, link): def __init__(self): threading.Thread.__init__(self) #self.num = num def run(self): print "Soy el hilo" #Creamos todos los nodos nodoz = nodo(600, 600, 'grey', 8, 0, 0) nodoz.create_node() nodo1 = nodo(125, 175, '#FF0000', 1, 0, 0) nodo1.create_node() nodo2 = nodo(475,175, '#FFFF00', 2, 0, 0) nodo2.create_node() nodo3 = nodo(125,475, '#0000FF', 3, 0, 0) nodo3.create_node() nodo4 = nodo(475, 475, '#00FF00', 4, 0, 0) nodo4.create_node() #Creamos todos los links link1_2 = link('n1','n2', 'enlace1_2', 0, 0, 2) link1_2.make_link() link3_4 = link('n3', 'n4', 'enlace3_4', 0, 0, 2) link3_4.make_link() link1_3 = link('n1', 'n3', 'enlace1_3', 0, 0, 2) link1_3.make_link() link2_4 = link('n2', 'n4', 'enlace2_4', 0, 0, 2) link2_4.make_link() ... t = MiThread() t.start() |