Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo actualizar el texto en labelz en Python

Cómo actualizar el texto en labelz en Python

#-*-?coding:?utf-8?-*-

'''

Según mi entendimiento personal:

Su time.sleep se llama antes del bucle principal, es decir, el retraso se completa antes de que se muestre la etiqueta y la configuración también se completa, por lo que el resultado de text = 2 se muestra directamente.

Pero incluso si se llama a la función de suspensión después de que aparece la etiqueta (también lo he probado), hay otro problema, es decir, la suspensión se ejecuta de manera bloqueante y el usuario no puede realizarla. cualquier operación antes de que se complete la suspensión y la interfaz de usuario no funcionará. No se puede actualizar, debe esperar hasta que se complete la suspensión antes de que pueda ocurrir.

Así que abrí otro hilo por retraso. Una vez completado el retraso, notifico a la interfaz de usuario que se actualice a través de la función de devolución de llamada.

No más tonterías, el siguiente es el código, yo uso python?2.7.8.

Si hay algún problema, por favor dame algún consejo.

'''

¿de?Tkinter?import?*

¿importar?hora

¿importar?threading

#¿Hilo de sincronización? Se utiliza para retrasar

clase?MyThread(threading.Thread):

#?sleeptime es el tiempo que debe retrasarse

# ?callback Es la función de devolución de llamada que se activa después de que finaliza el retraso

def?__init__(self,id,sleeptime,callback):

threading.Thread.__init__(self)

self.id=id

self.callback?=?callback

self.sleeptime?=?sleeptime

#?Reescribir la ejecución del hilo function

def?run(self):

time.sleep(self.sleeptime)

#? Pasar la función de devolución de llamada después de que se complete el retraso

self.callback()

clase?Ejemplo(Marco):

def?__init__(self,?parent):

Marco .__init__(self,? padre)

self.parent?=?parent

self.label?=?None

self.initUI()

# Formulario de inicialización

def?initUI(self):

self.label?=?Label(self,?text='1')

self.label.bind('',self.onVis)

self.label.pack()

self.parent.title("Etiqueta")

self.pack()

#Llamar después de mostrar la etiqueta

def?onVis(self,*args):

imprimir ?"¿Etiqueta? ¡Visible!"

#?Crea un nuevo hilo para retrasar y pasa changeText como función de devolución de llamada

t?=?MyThread(001,2,self.changeText )

t.start()

# Se llama después de que se completa el retraso y se vincula a la devolución de llamada de Mythread

def?changeText(self):

self.label.config(text?=?'10')

ventana?=?Tk()

aplicación?=?Ejemplo(ventana)

ventana.mainloop()