key event?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
EddiMiY
User
Beiträge: 12
Registriert: Freitag 27. März 2020, 16:45

moin moin,
ich habe da mal ne kurze frage ob es irgendwie in python sowas wie key events gibt?

Code: Alles auswählen

if ##keyevent=Enter:
	print("Enter")
geht sowa in der art? danke schonmal im vorraus
Benutzeravatar
noisefloor
User
Beiträge: 4193
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

es gibt Module, die das bereit stellen. Ein ist z.B. pygame. Wenn du "nur" Key Events brauchst ist ein spezialisiertes Modul aber vielleicht die schlankere Wahl. Befrage Google mal nach "python key event".

Gruß, noisefloor
EddiMiY
User
Beiträge: 12
Registriert: Freitag 27. März 2020, 16:45

noisefloor hat geschrieben: Mittwoch 15. April 2020, 15:01 Hallo,

es gibt Module, die das bereit stellen. Ein ist z.B. pygame. Wenn du "nur" Key Events brauchst ist ein spezialisiertes Modul aber vielleicht die schlankere Wahl. Befrage Google mal nach "python key event".

Gruß, noisefloor

das mit dem googlen habe ich schon versuch, ich habe ein Programm geschrieben das die Formeln der Formelsammlung auf Knopfdruck ausrechnen kann.
ich möchte das jetzt aber so machen dass die rechnungs Funktion über einen klick auf Enter(Tastatur) ausgeführt werden soll.
also auf knopdruck eine funktion abrufen.
Benutzeravatar
noisefloor
User
Beiträge: 4193
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

??? - verstehe ich nicht wirklich. Wo bekommt denn die Formel die Daten her? Hat dein Programm eine GUI oder nicht? GUI-Frameworks haben auch Methoden für Key Events.

Und was hast du schon probiert, was nicht funktioniert? Zeig mal deinen Code, dann kann man wesentlich konkreter helfen.

Gruß, noisefloor
EddiMiY
User
Beiträge: 12
Registriert: Freitag 27. März 2020, 16:45

noisefloor hat geschrieben: Mittwoch 15. April 2020, 16:20 Hallo,

??? - verstehe ich nicht wirklich. Wo bekommt denn die Formel die Daten her? Hat dein Programm eine GUI oder nicht? GUI-Frameworks haben auch Methoden für Key Events.

Und was hast du schon probiert, was nicht funktioniert? Zeig mal deinen Code, dann kann man wesentlich konkreter helfen.

Gruß, noisefloor

Code: Alles auswählen

import tkinter as tk
import math
# variable.get() holt den aktuellen Wert der Variable
# variable.set() gibt den aktuellen Wert der Variable vor

####Funktionen
def test(event):
    if Geometrievariable.get()=="Dreieck": 
        LbLbeschriftung1.set("g")
        LbLbeschriftung2.set("h")
        LbLbeschriftung3.set("a")
        LbLbeschriftung4.set("b")
        LbLbeschriftung5.set("γ°")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Flächeninhalt=")
        Art2LbLbeschrifftung.set("Umfang=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgDreieck
    elif Geometrievariable.get()=="Quadrat":
        LbLbeschriftung1.set("a")
        LbLbeschriftung2.set("---")
        LbLbeschriftung3.set("---")
        LbLbeschriftung4.set("---")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Flächeninhalt=")
        Art2LbLbeschrifftung.set("Umfang=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgQuadrat
    elif Geometrievariable.get()=="Rechteck": 
        LbLbeschriftung1.set("a")
        LbLbeschriftung2.set("b")
        LbLbeschriftung3.set("---")
        LbLbeschriftung4.set("---")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Flächeninhalt=")
        Art2LbLbeschrifftung.set("Umfang=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgRechteck
    elif Geometrievariable.get()=="Raute": 
        LbLbeschriftung1.set("g")
        LbLbeschriftung2.set("h")
        LbLbeschriftung3.set("e")
        LbLbeschriftung4.set("f")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Flächeninhalt=")
        Art2LbLbeschrifftung.set("Umfang=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgRaute
    elif Geometrievariable.get()=="Parallelogramm": 
        LbLbeschriftung1.set("g")
        LbLbeschriftung2.set("b")
        LbLbeschriftung3.set("h")
        LbLbeschriftung4.set("---")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Flächeninhalt=")
        Art2LbLbeschrifftung.set("Umfang=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgParallelogramm
    elif Geometrievariable.get()=="Trapez": 
        LbLbeschriftung1.set("a")
        LbLbeschriftung2.set("c")
        LbLbeschriftung3.set("b")
        LbLbeschriftung4.set("d")
        LbLbeschriftung5.set("m")
        LbLbeschriftung6.set("h")
        Art1LbLbeschrifftung.set("Flächeninhalt=")
        Art2LbLbeschrifftung.set("Umfang=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgTrapez
    elif Geometrievariable.get()=="Drachenviereck": 
        LbLbeschriftung1.set("a")
        LbLbeschriftung2.set("b")
        LbLbeschriftung3.set("e")
        LbLbeschriftung4.set("f")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Flächeninhalt=")
        Art2LbLbeschrifftung.set("Umfang=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgDrachenviereck
    elif Geometrievariable.get()=="Kreis": 
        LbLbeschriftung1.set("d")
        LbLbeschriftung2.set("r")
        LbLbeschriftung3.set("---")
        LbLbeschriftung4.set("---")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Flächeninhalt=")
        Art2LbLbeschrifftung.set("Umfang=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgKreis
    elif Geometrievariable.get()=="Figuren↓↓↓":
        LbLbeschriftung1.set("Die")
        LbLbeschriftung2.set("folgenden")
        LbLbeschriftung3.set("Label")
        LbLbeschriftung4.set("werden")
        LbLbeschriftung5.set("sich")
        LbLbeschriftung6.set("umbenennen.")
        Art1LbLbeschrifftung.set("Flächeninhalt=")
        Art2LbLbeschrifftung.set("Umfang=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgFormelsammlung

            
    elif Geometrievariable.get()=="Körper↓↓↓":
        LbLbeschriftung1.set("Die")
        LbLbeschriftung2.set("folgenden")
        LbLbeschriftung3.set("Label")
        LbLbeschriftung4.set("werden")
        LbLbeschriftung5.set("sich")
        LbLbeschriftung6.set("umbenennen.")
        Art1LbLbeschrifftung.set("Volumen=")
        Art2LbLbeschrifftung.set("Oberfläche=")
        Art3LbLbeschrifftung.set("Mantelfläche=")
        photoLbL["image"]=imgFormelsammlung
    elif Geometrievariable.get()=="Würfel": 
        LbLbeschriftung1.set("a")
        LbLbeschriftung2.set("---")
        LbLbeschriftung3.set("---")
        LbLbeschriftung4.set("---")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Volumen=")
        Art2LbLbeschrifftung.set("Oberfläche=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgWürfel
    elif Geometrievariable.get()=="Quader": 
        LbLbeschriftung1.set("a")
        LbLbeschriftung2.set("b")
        LbLbeschriftung3.set("c")
        LbLbeschriftung4.set("---")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Volumen=")
        Art2LbLbeschrifftung.set("Oberfläche=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgQuader
    elif Geometrievariable.get()=="Zylinder": 
        LbLbeschriftung1.set("d")
        LbLbeschriftung2.set("r")
        LbLbeschriftung3.set("k")
        LbLbeschriftung4.set("G")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Volumen=")
        Art2LbLbeschrifftung.set("Oberfläche=")
        Art3LbLbeschrifftung.set("Mantelfläche=")
        photoLbL["image"]=imgZylinder
    elif Geometrievariable.get()=="(Gerades)Prisma": 
        LbLbeschriftung1.set("k")
        LbLbeschriftung2.set("G")
        LbLbeschriftung3.set("u")
        LbLbeschriftung4.set("---")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Volumen=")
        Art2LbLbeschrifftung.set("Oberfläche=")
        Art3LbLbeschrifftung.set("Mantelfläche=")
        photoLbL["image"]=imgGeradesPrisma
    elif Geometrievariable.get()=="Pyramide": 
        LbLbeschriftung1.set("G")
        LbLbeschriftung2.set("M")
        LbLbeschriftung3.set("k")
        LbLbeschriftung4.set("---")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Volumen=")
        Art2LbLbeschrifftung.set("Oberfläche=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgPyramide
    elif Geometrievariable.get()=="Kegel": 
        LbLbeschriftung1.set("G")
        LbLbeschriftung2.set("M")
        LbLbeschriftung3.set("r")
        LbLbeschriftung4.set("s")
        LbLbeschriftung5.set("k")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Volumen=")
        Art2LbLbeschrifftung.set("Oberfläche=")
        Art3LbLbeschrifftung.set("Mantelfläche=")
        photoLbL["image"]=imgKegel
    elif Geometrievariable.get()=="Kugel": 
        LbLbeschriftung1.set("r")
        LbLbeschriftung2.set("d")
        LbLbeschriftung3.set("---")
        LbLbeschriftung4.set("---")
        LbLbeschriftung5.set("---")
        LbLbeschriftung6.set("---")
        Art1LbLbeschrifftung.set("Volumen=")
        Art2LbLbeschrifftung.set("Oberfläche=")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgKugel
    elif Geometrievariable.get()==" ":
        LbLbeschriftung1.set(" ")
        LbLbeschriftung2.set(" ")
        LbLbeschriftung3.set(" ")
        LbLbeschriftung4.set(" ")
        LbLbeschriftung5.set(" ")
        LbLbeschriftung6.set(" ")
        Art1LbLbeschrifftung.set(" ")
        Art2LbLbeschrifftung.set(" ")
        Art3LbLbeschrifftung.set(" ")
        photoLbL["image"]=imgFormelsammlung

def Rechnen():  
    AErg = "Fehler!"
    UErg = "Fehler!"
    VErg = "Fehler!"
    OErg = "Fehler!"
    MErg = "Fehler!"
    if Geometrievariable.get()=="Dreieck":
        print("Dreieck")
        g = EingabeFeld1.get()
        h = EingabeFeld2.get()
        a = EingabeFeld3.get()
        b = EingabeFeld4.get()
        γ = EingabeFeld5.get()
        try:
            if g!= "0" and  h!= "0": 
                AErg=float(g) * float(h)/2 
            elif a!= "0" and b!= "0"  and γ!= "0":
                AErg=(1/2)*float(a)*float(b)* math.sin(math.radians(float(γ)))
            if a!= "0" and b!= "0"  and g!= "0":
                UErg=float(g)+float(a)+float(b)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
        ####
    elif Geometrievariable.get()=="Quadrat":
        print("Quadrat")
        a = EingabeFeld1.get()
        try:
            if a!="0":
                AErg=float(a)**2
                UErg=4*float(a)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Rechteck":
        print("Rechteck")
        a = EingabeFeld1.get()
        b = EingabeFeld2.get()
        try:
            if a!= "0" and b!= "0":
                AErg=float(a)*float(b)
                UErg=(2*float(a))+(2*float(b))
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####            
    elif Geometrievariable.get()=="Raute":
        print("Raute")
        g = EingabeFeld1.get()
        h = EingabeFeld2.get()
        e = EingabeFeld3.get()
        f = EingabeFeld4.get()
        try:
            if g!= "0" and h!= "0":
                AErg=float(g) * float(h)
            elif e!= "0" and f!= "0":
                AErg=((float(e)+float(f))/2)
            if g!= "0":
                UErg=4*float(g)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Parallelogramm":
        print("Parallelogramm")
        g = EingabeFeld1.get()
        b = EingabeFeld2.get()
        h = EingabeFeld3.get()
        try:
            if g!= "0" and h!= "0":
                AErg=float(g) * float(h)
            if g!= "0" and b!= "0":
                UErg=(2*float(g))+(2*float(b))
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Trapez":
        print("Trapez")
        a = EingabeFeld1.get()
        c = EingabeFeld2.get()
        b = EingabeFeld3.get()
        d = EingabeFeld4.get()
        m = EingabeFeld5.get()
        h = EingabeFeld6.get()
        try:
            if m!= "0" and h!= "0":
                AErg=float(m)*float(h)
            elif a!= "0" and c!= "0" and  h!= "0":
                AErg=((float(a)+float(c))/2)*float(h)
            if a!= "0" and b!= "0" and c!= "0" and  d!= "0":
                UErg=float(a)+float(b)+float(c)+float(d)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Drachenviereck":
        print("Drachenviereck")
        a = EingabeFeld1.get()
        b = EingabeFeld2.get()
        e = EingabeFeld3.get()
        f = EingabeFeld4.get()
        try:
            if e!= "0" and f!= "0":
                AErg=(float(e)*float(f))/2
            if a!= "0" and b!= "0":
                UErg=(2*float(a))+(2*float(b))
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####   
    elif Geometrievariable.get()=="Kreis":
        print("Kreis")
        d = EingabeFeld1.get()
        r = EingabeFeld2.get()
        try:
            if r!= "0":
                AErg=2*π*(float(r)**2)
                UErg=2*π*float(r)
            if d!= "0":
                AErg=2*π*float(d)
                UErg=math.pi*float(d)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####


        
    if Geometrievariable.get()=="Würfel":
        print("Würfel")
        a = EingabeFeld1.get()
        try:
            if a!="0":
                VErg=float(a)**3
                OErg=6*(float(a)**2)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Quader":
        print("Quader")
        a = EingabeFeld1.get()
        b = EingabeFeld2.get()
        c = EingabeFeld3.get()
        try:
            if a!="0" and b!="0" and c!="0":
                VErg=float(a)*float(b)*float(c)
                OErg=2*(float(a)*float(b)+float(b)*float(c)+float(a)*float(c))
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####    
    elif Geometrievariable.get()=="Zylinder":
        print("Zylinder")
        d = EingabeFeld1.get()
        r = EingabeFeld2.get()
        k = EingabeFeld3.get()
        G = EingabeFeld4.get()
        try:
            if G!="0" and k!="0":
                VErg=float(G)*float(k)
            elif r!="0" and k!="0":
                VErg=math.pi*float(r)**2*float(k)
            if r!="0" and k!="0":
                MErg=2*math.pi*float(r)*float(k)
                OErg=2*math.pi*float(r)*(float(r)+float(k))
                MErgebnis.set(MErg)
            elif d!="0" and k!="0":
                MErg=math.pi*float(d)*float(k)
                MErgebnis.set(MErg)
            if G!="0" and MErgebnis.get()!="0":
                OErg=2*float(G)+float(MErgebnis.get())
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####    
    elif Geometrievariable.get()=="(Gerades)Prisma":
        print("(Gerades)Prisma")
        k = EingabeFeld1.get()
        G = EingabeFeld2.get()
        u = EingabeFeld3.get()
        try:
            if G!="0" and k!="0":
                VErg=float(G)*float(k)
            if u!="0" and k!="0":
                MErg=float(u)*float(k)
                MErgebnis.set(MErg)
            if G!="0" and MErgebnis.get()!="0":
                OErg=2*float(G)+float(MErgebnis.get())
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Pyramide":
        print("Pyramide")
        G = EingabeFeld1.get()
        M = EingabeFeld2.get()
        k = EingabeFeld3.get()
        try:
            if G!="0" and k!="0":
                VErg=(1/3)*float(G)*float(k)
            if G!="0" and M!="0":
                OErg=float(G)+float(M)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Kegel":
        print("Kegel")
        G = EingabeFeld1.get()
        M = EingabeFeld2.get()
        r = EingabeFeld3.get()
        s = EingabeFeld4.get()
        k = EingabeFeld5.get()
        try:
            if G!="0" and k!="0":
                VErg=(1/3)*float(G)*float(k)
            elif r!="0" and k!="0":
                VErg=(1/3)*math.pi*(float(r)**2)*float(k)
            if r!="0" and s!="0":
                MErg=math.pi*float(r)*float(s)
                OErg=math.pi*float(r)*(float(r)+float(s))
            if G!="0" and M!="0":
                OErg=float(G)+float(M)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####   
    elif Geometrievariable.get()=="Kugel":
        print("Kugel")
        r = EingabeFeld1.get()
        d = EingabeFeld2.get()
        try:
            if d!="0":
                r=float(d)/2
                VErg=(4/3)*math.pi*(float(r)**3)
                OErg=4*math.pi*(float(r)**2)
            if r!="0":
                VErg=(4/3)*math.pi*(float(r)**3)
                OErg=4*math.pi*(float(r)**2)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    ####
    if Geometrievariable.get()=="Dreieck"or Geometrievariable.get()== "Quadrat"or Geometrievariable.get()== "Rechteck"or Geometrievariable.get()=="Raute"or Geometrievariable.get()=="Parallelogramm"or Geometrievariable.get()=="Trapez"or Geometrievariable.get()=="Drachenviereck"or Geometrievariable.get()=="Kreis":
        AVLbLbeschrifftung.set(AErg)
        UOLbLbeschrifftung.set(UErg)
    elif Geometrievariable.get()=="Würfel"or Geometrievariable.get()=="Quader"or Geometrievariable.get()=="Zylinder"or Geometrievariable.get()=="(Gerades)Prisma"or Geometrievariable.get()=="Pyramide"or Geometrievariable.get()=="Kegel"or Geometrievariable.get()=="Kugel":
        AVLbLbeschrifftung.set(VErg)
        UOLbLbeschrifftung.set(OErg)
    if Geometrievariable.get()=="Zylinder"or Geometrievariable.get()=="(Gerades)Prisma"or Geometrievariable.get()=="Kegel":
        MLbLbeschrifftung.set(MErg)
  

       
        
            

####GUI name 
GUI = tk.Tk()
GUI.title("Formelsammlung")
GUI.configure(bg='#84FF84')
####Bilder
imgFormelsammlung = tk.PhotoImage(file = "Formelsammung.PNG")
imgDreieck = tk.PhotoImage(file = "Dreieck.PNG")
imgQuadrat = tk.PhotoImage(file = "Quadrat.PNG")
imgRechteck = tk.PhotoImage(file = "Rechteck.PNG")
imgRaute = tk.PhotoImage(file = "Raute.PNG")
imgParallelogramm = tk.PhotoImage(file = "Parallelogramm.PNG")
imgTrapez = tk.PhotoImage(file = "Trapez.PNG")
imgDrachenviereck = tk.PhotoImage(file = "Drachenviereck.PNG")
imgKreis = tk.PhotoImage(file = "Kreis.PNG")
imgWürfel = tk.PhotoImage(file = "Würfel.PNG")
imgQuader = tk.PhotoImage(file = "Quader.PNG")
imgZylinder = tk.PhotoImage(file = "Zylinder.PNG")
imgGeradesPrisma = tk.PhotoImage(file = "(Gerades)Prisma.PNG")
imgPyramide = tk.PhotoImage(file = "Pyramide.PNG")
imgKegel = tk.PhotoImage(file = "Kegel.PNG")
imgKugel = tk.PhotoImage(file = "Kugel.PNG")

imgFormelsammlung = imgFormelsammlung.subsample(2, 2)
imgDreieck = imgDreieck.subsample(2, 2)
imgQuadrat = imgQuadrat.subsample(2, 2)
imgRechteck = imgRechteck.subsample(2, 2)
imgRaute = imgRaute.subsample(2, 2)
imgParallelogramm = imgParallelogramm.subsample(2, 2)
imgTrapez = imgTrapez.subsample(2, 2)
imgDrachenviereck = imgDrachenviereck.subsample(2, 2)
imgKreis = imgKreis.subsample(2, 2)
imgWürfel = imgWürfel.subsample(2, 2)
imgQuader = imgQuader.subsample(2, 2)
imgZylinder = imgZylinder.subsample(2, 2)
imgGeradesPrisma = imgGeradesPrisma.subsample(2, 2)
imgPyramide = imgPyramide.subsample(2, 2)
imgKegel = imgKegel.subsample(2, 2)
imgKugel = imgKugel.subsample(2, 2)

####Variablen
Geometrievariable = tk.StringVar(GUI)
LbLbeschriftung1 = tk.StringVar(GUI)
LbLbeschriftung2 = tk.StringVar(GUI)
LbLbeschriftung3 = tk.StringVar(GUI)
LbLbeschriftung4 = tk.StringVar(GUI)
LbLbeschriftung5 = tk.StringVar(GUI)
LbLbeschriftung6 = tk.StringVar(GUI)

UOLbLbeschrifftung = tk.StringVar(GUI)
AVLbLbeschrifftung = tk.StringVar(GUI)
MLbLbeschrifftung = tk.StringVar(GUI)
MErgebnis = tk.StringVar(GUI)
Art1LbLbeschrifftung = tk.StringVar(GUI)
Art2LbLbeschrifftung = tk.StringVar(GUI)
Art3LbLbeschrifftung = tk.StringVar(GUI)

####Auswahlfenster
data=("Figuren↓↓↓", "Dreieck", "Quadrat", "Rechteck","Raute","Parallelogramm","Trapez","Drachenviereck","Kreis"," ","Körper↓↓↓","Würfel","Quader","Zylinder","(Gerades)Prisma","Pyramide","Kegel","Kugel")
Geometrievariable.set("Figuren↓↓↓")
Auswahl = tk.OptionMenu(GUI, Geometrievariable, *data, command=test)
Auswahl.grid(row=1, column=0)
Auswahl.configure(bg='#84FF84')
Auswahl["highlightthickness"]=0
####Button
RechnenBTN = tk.Button(GUI, command=Rechnen, text="Rechnen")
RechnenBTN.grid(row=2, column=0)
RechnenBTN.configure(bg='#84FF84')
####Textbox
EingabeFeld1  = tk.Entry(GUI)
EingabeFeld1 .grid(row=2, column=2)

EingabeFeld2  = tk.Entry(GUI)
EingabeFeld2 .grid(row=3, column=2)

EingabeFeld3  = tk.Entry(GUI)
EingabeFeld3 .grid(row=4, column=2)

EingabeFeld4  = tk.Entry(GUI)
EingabeFeld4 .grid(row=5, column=2)

EingabeFeld5  = tk.Entry(GUI)
EingabeFeld5 .grid(row=6, column=2)

EingabeFeld6  = tk.Entry(GUI)
EingabeFeld6 .grid(row=7, column=2)

####Label
LbLbeschriftung1.set("Die")
LbLbeschriftung2.set("folgenden")
LbLbeschriftung3.set("Label")
LbLbeschriftung4.set("werden")
LbLbeschriftung5.set("sich")
LbLbeschriftung6.set("umbenennen.")
label1 = tk.Label(GUI, textvariable=LbLbeschriftung1,height=1, width=10)
label1.grid(row=2, column=1)
label1.configure(bg='#84FF84')

label2 = tk.Label(GUI, textvariable=LbLbeschriftung2,height=1, width=10)
label2.grid(row=3, column=1)    
label2.configure(bg='#84FF84')

label3 = tk.Label(GUI, textvariable=LbLbeschriftung3,height=1, width=10)
label3.grid(row=4, column=1)  
label3.configure(bg='#84FF84')

label4 = tk.Label(GUI, textvariable=LbLbeschriftung4,height=1, width=10)
label4.grid(row=5, column=1)  
label4.configure(bg='#84FF84')

label5 = tk.Label(GUI, textvariable=LbLbeschriftung5,height=1, width=10)
label5.grid(row=6, column=1)  
label5.configure(bg='#84FF84')

label6 = tk.Label(GUI, textvariable=LbLbeschriftung6,height=1, width=10)
label6.grid(row=7, column=1)  
label6.configure(bg='#84FF84')

label10 = tk.Label(GUI, text="falls sie keinen wert haben setzen sie ein [0] ein",height=1, width=35)
label10.grid(row=3, column=0)
label10.configure(bg='#84FF84')
####
label7 = tk.Label(GUI, textvariable=Art1LbLbeschrifftung,height=1, width=14)
label7.grid(row=8, column=1)
label7.configure(bg='#84FF84')
ALbL = tk.Label(GUI, textvariable=AVLbLbeschrifftung,height=1, width=14)
ALbL.grid(row=8, column=2)
ALbL.configure(bg='#84FF84')

label8 = tk.Label(GUI, textvariable=Art2LbLbeschrifftung,height=1, width=14)
label8.grid(row=9, column=1)
label8.configure(bg='#84FF84')
ULbL = tk.Label(GUI, textvariable=UOLbLbeschrifftung,height=1, width=14)
ULbL.grid(row=9, column=2)
ULbL.configure(bg='#84FF84')

label9 = tk.Label(GUI, textvariable=Art3LbLbeschrifftung,height=1, width=14)
label9.grid(row=10, column=1)
label9.configure(bg='#84FF84')
MLbL = tk.Label(GUI, textvariable=MLbLbeschrifftung,height=1, width=14)
MLbL.grid(row=10, column=2)
MLbL.configure(bg='#84FF84')
####


photoLbL = tk.Label(GUI, image=imgFormelsammlung)
photoLbL.grid(row=0, column=2)
photoLbL.configure(bg='#84FF84')









tk.mainloop()


   

Da ist mein code, der ist absolut nicht gut aufgebaut weil ich noch ein ziemlicher anfänger bin aber ich möchte einfach nur das der

Code: Alles auswählen

def Rechnen():  
    AErg = "Fehler!"
    UErg = "Fehler!"
    VErg = "Fehler!"
    OErg = "Fehler!"
    MErg = "Fehler!"
    if Geometrievariable.get()=="Dreieck":
        print("Dreieck")
        g = EingabeFeld1.get()
        h = EingabeFeld2.get()
        a = EingabeFeld3.get()
        b = EingabeFeld4.get()
        γ = EingabeFeld5.get()
        try:
            if g!= "0" and  h!= "0": 
                AErg=float(g) * float(h)/2 
            elif a!= "0" and b!= "0"  and γ!= "0":
                AErg=(1/2)*float(a)*float(b)* math.sin(math.radians(float(γ)))
            if a!= "0" and b!= "0"  and g!= "0":
                UErg=float(g)+float(a)+float(b)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
        ####
    elif Geometrievariable.get()=="Quadrat":
        print("Quadrat")
        a = EingabeFeld1.get()
        try:
            if a!="0":
                AErg=float(a)**2
                UErg=4*float(a)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Rechteck":
        print("Rechteck")
        a = EingabeFeld1.get()
        b = EingabeFeld2.get()
        try:
            if a!= "0" and b!= "0":
                AErg=float(a)*float(b)
                UErg=(2*float(a))+(2*float(b))
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####            
    elif Geometrievariable.get()=="Raute":
        print("Raute")
        g = EingabeFeld1.get()
        h = EingabeFeld2.get()
        e = EingabeFeld3.get()
        f = EingabeFeld4.get()
        try:
            if g!= "0" and h!= "0":
                AErg=float(g) * float(h)
            elif e!= "0" and f!= "0":
                AErg=((float(e)+float(f))/2)
            if g!= "0":
                UErg=4*float(g)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Parallelogramm":
        print("Parallelogramm")
        g = EingabeFeld1.get()
        b = EingabeFeld2.get()
        h = EingabeFeld3.get()
        try:
            if g!= "0" and h!= "0":
                AErg=float(g) * float(h)
            if g!= "0" and b!= "0":
                UErg=(2*float(g))+(2*float(b))
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Trapez":
        print("Trapez")
        a = EingabeFeld1.get()
        c = EingabeFeld2.get()
        b = EingabeFeld3.get()
        d = EingabeFeld4.get()
        m = EingabeFeld5.get()
        h = EingabeFeld6.get()
        try:
            if m!= "0" and h!= "0":
                AErg=float(m)*float(h)
            elif a!= "0" and c!= "0" and  h!= "0":
                AErg=((float(a)+float(c))/2)*float(h)
            if a!= "0" and b!= "0" and c!= "0" and  d!= "0":
                UErg=float(a)+float(b)+float(c)+float(d)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Drachenviereck":
        print("Drachenviereck")
        a = EingabeFeld1.get()
        b = EingabeFeld2.get()
        e = EingabeFeld3.get()
        f = EingabeFeld4.get()
        try:
            if e!= "0" and f!= "0":
                AErg=(float(e)*float(f))/2
            if a!= "0" and b!= "0":
                UErg=(2*float(a))+(2*float(b))
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####   
    elif Geometrievariable.get()=="Kreis":
        print("Kreis")
        d = EingabeFeld1.get()
        r = EingabeFeld2.get()
        try:
            if r!= "0":
                AErg=2*π*(float(r)**2)
                UErg=2*π*float(r)
            if d!= "0":
                AErg=2*π*float(d)
                UErg=math.pi*float(d)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####


        
    if Geometrievariable.get()=="Würfel":
        print("Würfel")
        a = EingabeFeld1.get()
        try:
            if a!="0":
                VErg=float(a)**3
                OErg=6*(float(a)**2)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Quader":
        print("Quader")
        a = EingabeFeld1.get()
        b = EingabeFeld2.get()
        c = EingabeFeld3.get()
        try:
            if a!="0" and b!="0" and c!="0":
                VErg=float(a)*float(b)*float(c)
                OErg=2*(float(a)*float(b)+float(b)*float(c)+float(a)*float(c))
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####    
    elif Geometrievariable.get()=="Zylinder":
        print("Zylinder")
        d = EingabeFeld1.get()
        r = EingabeFeld2.get()
        k = EingabeFeld3.get()
        G = EingabeFeld4.get()
        try:
            if G!="0" and k!="0":
                VErg=float(G)*float(k)
            elif r!="0" and k!="0":
                VErg=math.pi*float(r)**2*float(k)
            if r!="0" and k!="0":
                MErg=2*math.pi*float(r)*float(k)
                OErg=2*math.pi*float(r)*(float(r)+float(k))
                MErgebnis.set(MErg)
            elif d!="0" and k!="0":
                MErg=math.pi*float(d)*float(k)
                MErgebnis.set(MErg)
            if G!="0" and MErgebnis.get()!="0":
                OErg=2*float(G)+float(MErgebnis.get())
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####    
    elif Geometrievariable.get()=="(Gerades)Prisma":
        print("(Gerades)Prisma")
        k = EingabeFeld1.get()
        G = EingabeFeld2.get()
        u = EingabeFeld3.get()
        try:
            if G!="0" and k!="0":
                VErg=float(G)*float(k)
            if u!="0" and k!="0":
                MErg=float(u)*float(k)
                MErgebnis.set(MErg)
            if G!="0" and MErgebnis.get()!="0":
                OErg=2*float(G)+float(MErgebnis.get())
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Pyramide":
        print("Pyramide")
        G = EingabeFeld1.get()
        M = EingabeFeld2.get()
        k = EingabeFeld3.get()
        try:
            if G!="0" and k!="0":
                VErg=(1/3)*float(G)*float(k)
            if G!="0" and M!="0":
                OErg=float(G)+float(M)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    elif Geometrievariable.get()=="Kegel":
        print("Kegel")
        G = EingabeFeld1.get()
        M = EingabeFeld2.get()
        r = EingabeFeld3.get()
        s = EingabeFeld4.get()
        k = EingabeFeld5.get()
        try:
            if G!="0" and k!="0":
                VErg=(1/3)*float(G)*float(k)
            elif r!="0" and k!="0":
                VErg=(1/3)*math.pi*(float(r)**2)*float(k)
            if r!="0" and s!="0":
                MErg=math.pi*float(r)*float(s)
                OErg=math.pi*float(r)*(float(r)+float(s))
            if G!="0" and M!="0":
                OErg=float(G)+float(M)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####   
    elif Geometrievariable.get()=="Kugel":
        print("Kugel")
        r = EingabeFeld1.get()
        d = EingabeFeld2.get()
        try:
            if d!="0":
                r=float(d)/2
                VErg=(4/3)*math.pi*(float(r)**3)
                OErg=4*math.pi*(float(r)**2)
            if r!="0":
                VErg=(4/3)*math.pi*(float(r)**3)
                OErg=4*math.pi*(float(r)**2)
        except ValueError:
            print("Es gab ein fehler bei der eingabe, achten sie darauf dass die keine buchstaben verwenden...Außerdem sollten sie bei Kommazahlen ein [.] verwenden kein [,]")
    ####
    ####
    if Geometrievariable.get()=="Dreieck"or Geometrievariable.get()== "Quadrat"or Geometrievariable.get()== "Rechteck"or Geometrievariable.get()=="Raute"or Geometrievariable.get()=="Parallelogramm"or Geometrievariable.get()=="Trapez"or Geometrievariable.get()=="Drachenviereck"or Geometrievariable.get()=="Kreis":
        AVLbLbeschrifftung.set(AErg)
        UOLbLbeschrifftung.set(UErg)
    elif Geometrievariable.get()=="Würfel"or Geometrievariable.get()=="Quader"or Geometrievariable.get()=="Zylinder"or Geometrievariable.get()=="(Gerades)Prisma"or Geometrievariable.get()=="Pyramide"or Geometrievariable.get()=="Kegel"or Geometrievariable.get()=="Kugel":
        AVLbLbeschrifftung.set(VErg)
        UOLbLbeschrifftung.set(OErg)
    if Geometrievariable.get()=="Zylinder"or Geometrievariable.get()=="(Gerades)Prisma"or Geometrievariable.get()=="Kegel":
        MLbLbeschrifftung.set(MErg)
  
per knopfruch ausgefüht werden soll
lg
Benutzeravatar
noisefloor
User
Beiträge: 4193
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

Tkinter kennt key events: https://effbot.org/tkinterbook/tkinter- ... ndings.htm
Du musst einfach die Funktionen "Rechnen" an das Enter-Key Event binden.

Und du solltest _dringend_ deine Code in eine Klasse stecken und sinnvoll in Methoden aufteilen. Was du da hast ist ja nicht wirklich wart- und erweiterbar.

Gruß, noisefloor
EddiMiY
User
Beiträge: 12
Registriert: Freitag 27. März 2020, 16:45

noisefloor hat geschrieben: Mittwoch 15. April 2020, 16:33 Hallo,

Tkinter kennt key events: https://effbot.org/tkinterbook/tkinter- ... ndings.htm
Du musst einfach die Funktionen "Rechnen" an das Enter-Key Event binden.

Und du solltest _dringend_ deine Code in eine Klasse stecken und sinnvoll in Methoden aufteilen. Was du da hast ist ja nicht wirklich wart- und erweiterbar.

Gruß, noisefloor
hat echt schonmal geholfen , aber brauche da ehr hilfe :/
kannst du mir evtl einen teil eines codes erstellen wie ich mit Enter die funktion rechnen ausfüren kann?
dankö
Benutzeravatar
noisefloor
User
Beiträge: 4193
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

das steht doch immer allerersten Beispiel in dem Link. Was da `callback`ist, ist bei dir `Rechnen` und der Event-Name ist `<Return>`. Dann hast du alles, was du willst.

Gruß, noisefloor
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

@EddiMiY: warum fragst Du hier immer wieder neue Fragen, statt erst einmal die Anmerkungen, die ich schon auf Deinen ersten Post hatte, umzusetzen? Dir fehlen noch viele Grundlagen und der Code ist in der Form nicht erweiterbar. Da muß zuerst aufgeräumt werden.
Antworten