2016-04-16 4 views
0

Das ist mein Programm:Wie kann ich die Benutzer machen können, drücken Eingabe in ein Eingabefeld Tkinter

enter image description here

Ich habe Probleme, so dass die Presse Benutzer eingeben, damit das Programm kann sich tatsächlich auslösen. Ich bin ziemlich neu zu tkinter! Hier

ist der Code für das Comboboxs:

self.measurements = StringVar() 
self.Combobox_Length_Left = ttk.Combobox(self.length_frame, textvariable = self.measurements, values = ('mm', 'cm', 'inches', 'feet', 'yards', 'meter', 'km', 'miles'), width = 10) 
self.Combobox_Length_Left.grid(row = 2, column = 0, padx = 5, pady = 5, sticky = E) 

self.measurements1 = StringVar() 
self.Combobox_Length_Right = ttk.Combobox(self.length_frame, textvariable = self.measurements1, value = ('mm', 'cm', 'inches', 'feet', 'yards', 'meter', 'km', 'miles'), width = 10) 
self.Combobox_Length_Right.grid(row = 2, column = 2, padx = 5, pady = 5, sticky = E) 

Hier ist der Code für die Eingabefelder:

self.Text_Length_Left = IntVar() 
self.Entry_Length_Left = ttk.Entry(self.length_frame, textvariable = self.Text_Length_Left,width = 13) 
self.Entry_Length_Left.grid(row = 3, column = 0, padx = 5, pady = 5) 

self.Text_Length_Right = IntVar() 
self.Entry_Length_Right = ttk.Entry(self.length_frame, textvariable = self.Text_Length_Right,width = 13) 
self.Entry_Length_Right.grid(row = 3, column = 2, padx = 5, pady = 5) 

Der Code für die Umwandlung von m ...:

as_meter = dict(mm=0.001, cm=0.01, inches=0.0254,feet=0.3048, yards=0.9144, meter=1.0,km=1000.0, miles=1609.344) 
def update_length(self, *args): 
    self.measurements.trace('w', self.update_length) 
    self.measurements1.trace('w', self.update_length) 
    self.Text_Length_Left.trace('w', self.update_length) 
    try: 
     v = float(self.Text_Length_Left.get()) 
    except ValueError: 
     v = 0.0 
     self.Text_Length_Left.set(str(v)) 
    m = v * self.as_meter[self.measurements.get()] 
    r = m/self.as_meter[self.measurements1.get()] 
    self.Text_Length_Right.set("{:.3e}".format(r)) 

Ich möchte in der Lage sein, Enter drücken und das Programm wird seine Magie tun und dafür die Berechnung in das andere Eingabefeld und auch das gleiche Verfahren mit dem anderen Eingabefeld.

Danke für jede Hilfe! Sehr geschätzt.

Antwort

0

Sie suchen die bind Enter-Taste (called "<Return>" von tkinter):

self.Combobox_Length_Right.bind("<Return>",self. update_length) 
self.Combobox_Length_Right.bind("<Return>",self. update_length) 
+0

Vielen Dank für Ihre Hilfe, aber es mit dem Fehler kommen: 'Attribute:‚IntVar‘Objekt hat kein Attribut‚bind‘ ' –

+0

Sorry, ich meinte' self.Combobox_Length_Right' wird bearbeitet –

+0

Vielen Dank Mann, du hast mir gerade geholfen, mein Projekt zu beenden, an dem ich seit vier Monaten arbeite Ich kann dir nicht genug danken. –

Verwandte Themen