Python - Sabes que botón se presionó con tkinter

 
Vista:

Sabes que botón se presionó con tkinter

Publicado por Daniel (2 intervenciones) el 11/01/2021 19:56:28
Hola a todos.

Me gustaría saber como puedo saber que botón presioné si los botones fueron generado por un ciclo "for" con la librería de tkinter.

Mi código es el siguiente:

1
2
3
4
5
6
7
8
from tkinter import *
 
Raiz = Tk()
 
for i in range(4):
	Button(Raiz, text = 'Botón ' + str(i + 1), command = lambda : print('Presionaste el botón ', i + 1)).pack()
 
Raiz.mainloop()

Al presionar cualquier botón, siempre me manda "Presionaste el botón 4", pero me gustaría que me mandara el mensaje con el botón que presioné.

Por su atención, muchas gracias.
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
Val: 2.656
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Sabes que botón se presionó con tkinter

Publicado por tincopasan (781 intervenciones) el 11/01/2021 23:11:31
el problema es que estas mostrando el valor final de i, con un simple cambio:
1
2
3
4
5
6
7
8
9
10
#-*- coding: utf -8 -*-
from tkinter import *
 
Raiz = Tk()
 
for i in range(4):
 
    Button(Raiz, text = 'Botón ' + str(i + 1), command = lambda texto = i + 1: print('Botón ',texto)).pack()
 
Raiz.mainloop()

dicho sea de paso me parece mejor:

1
2
3
4
5
6
7
8
9
10
11
12
#-*- coding: utf -8 -*-
from tkinter import *
 
Raiz = Tk()
 
for i in range(1,5):
 
    Button(Raiz, text = 'Botón ' + str(i), command = lambda texto = i : print('Botón ',texto)).pack()
 
Raiz.mainloop()
 
# te ahorrás todos los + 1
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

Sabes que botón se presionó con tkinter

Publicado por Daniel (2 intervenciones) el 11/01/2021 23:35:18
¡Muchísimas gracias!

Tienes toda la razón, funcionó de maravilla.

Excelente tarde.
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