2017-10-19 18 views
-1

j'ai écrit un programme en Python 3.6.2 par tkinter, je l'ai écrit le code ci-dessous:Comment écrire un événement pour la zone de texte dans tkinter?

from tkinter import * 
root=Tk() 
def retrieve_input(): 
    inputValue=textBox.get("1.0","end-1c") 
    print(inputValue) 

textBox=Text(root, height=2, width=10) 
textBox.pack() 
buttonCommit=Button(root, height=1, width=10, text="Commit", 
        command=lambda: retrieve_input()) 
buttonCommit.pack() 
mainloop() 

je veux quand appuyez sur la touche Entrée dans la presse textbox « vous appuyez sur Entrée dans zone de texte ». Comment puis-je écrire un événement?

+0

Avez-vous fait des recherches? La liaison aux événements est très fondamentale et est couverte dans presque tous les tutoriels tkinter. –

Répondre

0

Check Ce

from tkinter import * 
from tkinter import messagebox 

root=Tk() 

def alertme(*args): 
    messagebox.showinfo("Message", "you press Enter in textbox") 

def retrieve_input(): 
    inputValue=textBox.get("1.0","end-1c") 
    print(inputValue) 

textBox=Text(root, height=2, width=10) 
textBox.pack() 

textBox.bind("<Return>", alertme) #this line calls alertme function whenever you press Enter key 

buttonCommit=Button(root, height=1, width=10, text="Commit", 
        command=lambda: retrieve_input()) 
buttonCommit.pack() 
mainloop() 

Maintenant, il ne fonctionnera que dans cette zone de texte ...

+0

Cela va imprimer quel que soit le widget dans lequel se trouve le curseur. Puisque ce programme n'a qu'un seul widget d'entrée, le point est sans objet, mais pour un programme qui a plus d'un widget d'entrée, ce n'est pas une bonne solution. Vous ne devriez pas être lié à 'root'. –

+0

@Bryan Oakley comment le réparer? – naghi

+0

lier au widget de texte –