Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

165
Views
¿Hay alguna manera de leer las pulsaciones de teclas desde la tecla Intro?

He estado jugando en python (v3.9.10) y no he encontrado ninguna forma de leer las pulsaciones de tecla desde la tecla Intro y hacer que tkinter haga algo con esa pulsación de tecla. Estoy tratando de hacer un pequeño programa tonto para mostrar algunos números en mi pantalla para la escuela y quiero poder hacerlo rápidamente. este es mi código hasta ahora:

 from tkinter import * #DEFS def submit(): submitted=entrybox.get() display.config(text=submitted) app=Tk() entrybox=Entry(width=10) entrybox.place(x=10,y=10) #display label display=Label(text=' ') display.place(x=50,y=50) display.config(font='Arial 72') #submit button subbutton=Button(text='SUBMIT',command=submit) subbutton.place(x=70,y=10)

(Lo siento si mi código se ve realmente mal, soy bastante nuevo en python y todo lo que tiene para ofrecer) (También lo siento por sonar repetitivo y/o tonto. Foros como este tampoco me son familiares)

¿Hay alguna forma de leer las pulsaciones de tecla desde la tecla Intro mientras permite que el resto de mis cosas de tkinter se ejecuten según lo previsto? gracias de antemano.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puedes usar .bind() para hacer esto así:

 app.bind('<Return>', function)

Esto llamará a la function cuando se presione enter. '<return>' denota la tecla regresar o ingresar, y llama a la function cuando ocurre el evento de presionar una tecla regresar.

Podrías agregarlo a tu código así:

 from tkinter import * def submit(): submitted=entrybox.get() display.config(text=submitted) app=Tk() entrybox=Entry(width=10) entrybox.place(x=10,y=10) #display label display=Label(text=' ') display.place(x=50,y=50) display.config(font='Arial 72') #submit button subbutton=Button(text='SUBMIT',command=submit) subbutton.place(x=70,y=10) app.bind('<Return>', lambda x: submit()) app.mainloop()

Esto hará lo que estás buscando...

over 4 years ago · Santiago Trujillo Report

0

Cómo enlazar y manejar eventos

Use el método bind(sequence, func) en su widget (como Button o incluso la aplicación raíz Tk ).

La sequence de parámetros es uno de los eventos predefinidos , un nombre de cadena para teclas, eventos de mouse, etc. El parámetro func es una función de devolución de llamada o controlador, dada solo por nombre (sin paréntesis ni argumentos), que debe tener un parámetro posicional para Event

Manifestación

Vea este ejemplo mínimo:

 from tkinter import * def callback(event): print(event) def quit(): # did we miss something ? print("Escape was pressed. Quitting.. Bye!") exit() app = Tk() app.bind('<Return>', callback) # on keypress of Enter or Return key app.bind('<Enter>', callback) # on mouse-pointer entering the widget - here the app's root window (not confuse with Enter key of keyboard) app.bind('<Escape>', quit) # on keypress of Escape key app.mainloop() # to start the main loop listening for events

Imprime después de presionar las siguientes teclas:

  1. Se presionó la tecla Intro
  2. Se presionó la tecla Escape
 <KeyPress event keysym=Return keycode=36 char='\r' x=-583 y=-309> Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python3.6/tkinter/__init__.py", line 1705, in __call__ return self.func(*args) TypeError: quit() takes 0 positional arguments but 1 was given

Nota:

  1. Se capturó la tecla Intro y se invocó la función de devolución de llamada/controlador enlazada ( callback de llamada) que imprime el event pasado.
  2. Se capturó la tecla Escape y se invocó la función de devolución de llamada/controlador ( quit ). Pero como no tiene el parámetro requerido (como event ), la invocación falló con un TypeError .

Al agregar el parámetro def quit(event): tiene éxito:

 <Enter event focus=True x=6 y=188> <Enter event focus=True x=182 y=45> <KeyPress event keysym=Return keycode=36 char='\r' x=-583 y=-309> <Enter event state=Button1 focus=True x=123 y=68> Escape was pressed. Quitting.. Bye!

Nota:

  1. El evento <Enter> es cuando el puntero del mouse ingresa al marco del widget (visible), aquí de la ventana raíz de la aplicación.
  2. El evento <Escape> sale de la aplicación

Otras lecturas

RealPython: Python GUI Programación con Tkinter es un rico tutorial para obtener más información, especialmente sobre el uso de .bind() .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!