Foros Python

Versión completa: [tkinter] Acceder a un botón presionando alguna de las letras del texto.
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola gente ¿Cómo están?
En VFP se le llamaba ‘tecla caliente’ era algo como esto, botón <Buscar> por ej. la tecla ‘B’
se veía subrayada y eso significaba que pulsando la tecla ‘B’ en el teclado emulaba el <Enter>.-
Creo que tiene que ver con “underline” pero no me funciona.-

Slds. Daniel.
Buenas, Daniel.

Acá tenés un ejemplo. El underline es para mostrar subrayado un carácter del texto del botón (el número indica el índice del carácter). Luego tenés que hacer un bind() para conectar la letra con la función del botón.

  1. import tkinter as tk
  2. from tkinter import ttk, messagebox
  3.  
  4. def saludar(event=None):
  5. messagebox.showinfo(title="Saludo", message="Hola mundo")
  6.  
  7. ventana = tk.Tk()
  8. boton1 = tk.Button(text="Hola mundo", underline=1, command=saludar)
  9. boton1.place(x=30, y=60)
  10. ventana.bind("o", saludar)
  11. ventana.mainloop()


El event=None es necesario porque ese valor solo estará disponible cuando la función se invoque a partir del teclado.

Saludos
Hola Francisco ¿Cómo estas?, después de unas “duras” vacaciones espero que tengas un muy muy buen año.-
Esta todo ok, solo una pregunta:

---------------------------------------------------
ventana.bind("o", saludar)
---------------------------------------------------
que significa la "o" ¿es el orden del botón?.-
Slds. Daniel ☕☕☕
Hola, Daniel. Todo bien, renovado ahora por suerte.

Usando ventana.bind("o", saludar) hacés que Tk invoque la función saludar() cuando el usuario presiona la tecla «o». El primer argumento es el nombre de la letra o tecla. Para otras teclas (como Tab o la flecha para arriba), hay que usar el formato <Key-Tecla>, donde "Tecla" es uno de los nombres de teclas definidos por Tk en esta lista: https://www.tcl.tk/man/tcl8.4/TkCmd/keysyms.html. Por ejemplo, para que el botón sea ejecutado al presionar la tecla Tab:

  1. ventana.bind("<Key-Tab>", saludar)


Saludos