tkinter input Volumen

Fragen zu Tkinter.
Antworten
felix234
User
Beiträge: 5
Registriert: Sonntag 29. März 2015, 21:59

Also ich hätte meine erste Frage hier im Forum, und zwar habe ich dazu noch nichts gefunden:
ich möchte ein Programm schreiben das tkinter benutzt, und das einen input durch 3 teilt(hier die Funktion dazu)

Code: Alles auswählen

    def ausgeben(self):                                      
        self.ausgabe.config(text= self.eingabe/3())
        self.eingabe.delete(0,END)
und dann diesen Wert ausgibt. Irgendwie funktioniert das nicht ganz und deswegen wollt eich mal fragen was da alles falsch ist, finde nämlich nichts...bekomme nur diese Meldung:

SyntaxError: multiple statements found while compiling a single statement

lg Felix



Hier der ganze code:

Code: Alles auswählen

from tkinter import *

class stringverarbeitung:
    
    def __init__(self, master):
        rahmenEingabe = Frame(master)
        rahmenEingabe.pack()
        self.label = Label(rahmenEingabe, text= "Bitte Volumen eingeben")
        self.label.pack(side = "left")
        self.eingabe =  Entry(rahmenEingabe, width "30")
        self.eingabe.pack(side = "left")
        self.button = Button(rahmenEingabe, text ="Ausgeben",
                                    width = 11, height = 1, command = self.ausgeben)
        self.button.pack(side="left")
        rahmenAusgabe = Frame(master)
        rahmenAusgabe.pack()
        self.ausgabe = Label(rahmenAusgabe, height ="2", width= "50",
                       background= "yellow")
        self.ausgabe.pack()

    
    def ausgeben(self):
        self.ausgabe.config(text= self.eingabe/3())
        self.eingabe.delete(0,END)
    




root = Tk()
root.title("Volumen")
root.geometry("600*600")
app = Stringverarbeitung(root)
root.mainloop()
Zuletzt geändert von Anonymous am Sonntag 29. März 2015, 22:11, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
BlackJack

@felix234: Erklär doch mal was jeder einzelne Teilausdruck in der Zeile bedeutet. Ziehe die Berechnung des Wertes für das `text`-Argument mal dort heraus und binde das an einen Namen. Wie sieht der Ausdruck dafür dann aus?

Neben dem Syntaxfehler kann man übrigens ein GUI-Element nicht durch eine Zahl teilen. Du müsstest schon den *Text* ermitteln der dort eingegeben wurde, den dann in eine Zahl umwandeln, und *die* durch drei Teilen.
felix234
User
Beiträge: 5
Registriert: Sonntag 29. März 2015, 21:59

ERstmal fetten Dank für deine antwort zu mienm langweiligem Thema!!
Habe jetzt alles ein bisschen geändert(wie du es gesagt hast), geht aber immer noch nicht:(

lg Felix

Code: Alles auswählen

from tkinter import *
 
class stringverarbeitung:
    




   
    def __init__(self, master):
    
        rahmenEingabe = Frame(master)
        rahmenEingabe.pack()
        self.label = Label(rahmenEingabe, text= "Wie lautet dein Wert?")
        self.label.pack(side = "left")
        self.eingabe = Entry(rahmenEingabe, width= "10",)
        self.eingabe.pack(side = "left")
                

        self.button2 = Button(rahmenEingabe, text ="umwandeln",
                              width = 4, height = 1, command = self.integer)
        self.button2.pack(side= "left")

        rahmenRechnung = Frame(master)
        rahmenRechnung.pack()

        self.button3 = Button(rahmenRechnung, text = "rechnen",
                              width = 7, height = 1, command = self.rechnen)
        self.button3.pack(side = "left")

        
        self.button = Button(rahmenEingabe, text ="Ausgeben",
                                    width = 11, height = 1, command = self.ausgeben)
        self.button.pack(side="left")

        
        rahmenAusgabe = Frame(master)
        rahmenAusgabe.pack()
        self.ausgabe = Label(rahmenAusgabe, height ="2", width= "50",
                       background= "yellow")
        self.ausgabe.pack()

    def integer(self):
        self.Wert = int
        self.Wert = self.eingabe
    
        
    def rechnen(self):
        a = self.Wert / 3
        print(a)
        

        


    def ausgeben(self):
        self.ausgabe.config(text=a)
        self.eingabe.delete(0,END)
   
 
 
 
 
root = Tk()
root.title("Volumen")
root.geometry("300x100")
app = stringverarbeitung(root)
root.mainloop()


Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@felix234: was heißt "geht nicht"? Gibt es eine Fehlermeldung?
Was denkst Du macht Zeile 44? Und welchen Typ hat "self.Wert" in Zeile 45?
felix234
User
Beiträge: 5
Registriert: Sonntag 29. März 2015, 21:59

Also mit geht nicht meine ich das ich einfach einen syntax error bekomme, aber keine markierung finde...
Und das self ist in dem Fall nur da, weil ich den Wert zuerst nicht als Variable gemacht habe(hat nicht funktioniert) und jetzt einfach beides übernommen habe, sonst erkennt es das ganze ja nicht
lg und danke für die antwort
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@felix234: der Code den Du gepostet hat, hat keinen SyntaxError. Also entweder Du hast etwas anderes ausprobiert oder aber Du bekommst einen anderen Fehler.
Du hast noch nicht die beiden Fragen beantwortet: Was denkst Du macht Zeile 44? Und welchen Typ hat "self.Wert" in Zeile 45?
Antworten