Python - Problema con botones en python

 
Vista:
sin imagen de perfil

Problema con botones en python

Publicado por Benjamin (2 intervenciones) el 16/12/2015 03:13:54
Estoy haciendo un buscaminas (Como el tipico de windows), pero tengo un problema con los botones. Para generalizar hice loop para hacer todos los espacios de la tabla, pero el problema me surge que al llamar a la función del botón no me envía los argumentos correctos. ¿Alguna idea de como solucionar esto?

URL del Codigo: http://pastebin.com/VyJiAUDX
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
sin imagen de perfil

Problema con botones en python

Publicado por Benjamin (2 intervenciones) el 16/12/2015 18:50:58
Dejo un codigo simplificado de lo que no me resulta.

1
2
3
4
5
6
7
8
9
10
11
12
import tkinter as tk
def toggle_text(x):
        button[x]["text"] = x
 
if __name__ == "__main__":
	button = [0 for i in range(3)]
	root = tk.Tk()
	root.title("Click the Button")
	for x in range(0,3):
		button[x] = tk.Button( text="", width=12, command=lambda:toggle_text(x))
		button[x].pack()
	root.mainloop()

Se supone que si presiono el primer boton tiene que aparecer su numero pero siempre aparece el del ultimo boton.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con botones en python

Publicado por anonymous (84 intervenciones) el 17/12/2015 21:50:42
Tuve el mismo problema, pero el mio fue usando pyside. Yo lo arregle de la siguiente forma, pero no se si en tkinter funcione.

1
2
#el truco esta en los corchetes junto con los parentesis: [()] y el los lambda
value.clicked[()].connect(lambda De_user=De_user, idChat=idChat: self.Inbox(idChat,De_user))

Como mencione antes, yo utilize esto en pyside. No se si en tkinter sea algo similar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar