Ok, raw_input ist hier also fehl am Platze. Da ja die Zeichenkette aus´n Entry kommt.
Ich hab jetzt mein Programm mal abgeändert. Erhalte jedoch immer noch Fehlermeldungen:
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__
return self.func(*args)
File "C:\Dokumente und Einstellungen\Richy Rich\Desktop\test.pyw", line 43, in evOkay
user_input = user_input.replace('.', '').replace(',', '.')
AttributeError: Entry instance has no attribute 'replace'
Ich weiß nicht mehr, wo ich noch was abändern muss. Gut anscheined sagt die Fehlermldg. ja dass das Entry nicht weiß was replace ist.
Aber kenn mich auch noch nicht so mit Schleifen u. Tkinter aus.
Hier mein abgeänderter Code:
Code: Alles auswählen
# -*- coding: cp1252 -*-
from Tkinter import *
#Funktion um die Benutzereingabe "," abzufangen:
class Dezimalrechnen:
def __init__(self):
self.tk = Tk()
self.variable = 10.52
self.ausgabe = StringVar()
self.F = Frame(self.tk)
self.F.pack(expand="true")
Label(self.F, text='Eingabe:', width=10, height=2).pack()
self.fEntry = Frame(self.F, border="1")
self.eSerial = Entry(self.fEntry)
self.eSerial.pack(side="left", expand="true")
self.fEntry.pack(side="top", expand="true")
# -brauch ich nicht - Entry(self.tk, input_german_money_value(), width=10, relief='sunken',
#borderwidth=2).pack()
##Button der das "herausholen" auslöst!
self.fButtons = Frame(self.F, border=1)
self.bOkay = Button(self.fButtons, text="Berechnen",width=8, height=1,
command=self.evOkay)
self.bOkay.pack(side="top", padx=6, pady=6)
self.fButtons.pack(side="top", expand="true")
# -brauch ich auch nicht - Button(self.tk, text='Berechnen',
# width =10, height= 1,
# command=self.berechnen).pack()
Label(self.F, font=('Arial', 12), fg='red',
width=20, height=4,
textvariable=self.ausgabe).pack()
self.tk.mainloop()
#Benutzereingabe als float berechnen:
def evOkay(self):
user_input = self.eSerial
while user_input == self.eSerial:
user_input = user_input.replace('.', '').replace(',', '.')
return float(user_input)
rechnung = self.evOkay/self.variable
ergebnis = ("%.2f" % rechnung)
self.ausgabe.set(ergebnis)
dezimalrechnen = Dezimalrechnen()