Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[tkinter] Acceder a un botón presionando alguna de las letras del texto.
#1
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.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Responder
#2
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
Responder
#3
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 ☕☕☕
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Responder
#4
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
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)