Entry und int(get)
Verfasst: Montag 7. April 2008, 21:35
Hallo!
Hilfe, ich finde einfach keinen Lösungsansatz.
Es werden Zahlen in Entry's eingegeben, über ein dict zwischengespeichert und dann als int-werte weiterverarbeitet.Das funktioniert auch soweit, allerdings mit folgender Einschränkung.
Beispiel:
Die Ausgabe bei ==2== funktioniert nur, wenn ich vorher über insert (==1==) eine Zahl eingebe. Egal ob mit oder ohne Kommata. Diese Zahl steht dann in allen Entry's bevor ich was eingebe. Wie gesagt, es funktioniert zwar, aber das kann so nicht richtig sein.
Ohne insert (==1==) kommt folgende Fehlermeldung:
Das Problem ist wohl, das nach Eingabe über TAB-event in der Funktion "calc" alle Entry's durchlaufen werden und die Entry's, bei denen noch kein Wert eingegeben ist, einen String zurückliefern.
Hat jemand eine Lösung, wie ich die Nullen da rausbekomme?
Grüße
rai
Hilfe, ich finde einfach keinen Lösungsansatz.
Es werden Zahlen in Entry's eingegeben, über ein dict zwischengespeichert und dann als int-werte weiterverarbeitet.Das funktioniert auch soweit, allerdings mit folgender Einschränkung.
Beispiel:
Code: Alles auswählen
import Tkinter as tk
class Test():
def __init__(self):
self.dict = {}
for i in range(1):
for j in range(10):
ent = tk.Entry()
ent.grid(column=i, row=j)
ent.insert(tk.END, '0') #==1==
self.dict[i, j] = ent
ent.bind('<KeyPress-Tab>', self.calc)
def calc(self, event):
for i in range(1):
for j in range(10):
k = i, j
print int(self.dict.get(k).get()) #==2==
root = tk.Tk()
t = Test()
root.mainloop()
Ohne insert (==1==) kommt folgende Fehlermeldung:
Code: Alles auswählen
print int(self.dict.get(k).get()) # ==2==
ValueError: invalid literal for int() with base 10: ''
Hat jemand eine Lösung, wie ich die Nullen da rausbekomme?
Grüße
rai