Seite 1 von 1

key event?

Verfasst: Mittwoch 15. April 2020, 14:35
von EddiMiY
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

Re: key event?

Verfasst: Mittwoch 15. April 2020, 15:01
von noisefloor
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

Re: key event?

Verfasst: Mittwoch 15. April 2020, 16:02
von EddiMiY
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.

Re: key event?

Verfasst: Mittwoch 15. April 2020, 16:20
von noisefloor
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

Re: key event?

Verfasst: Mittwoch 15. April 2020, 16:28
von EddiMiY
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

Re: key event?

Verfasst: Mittwoch 15. April 2020, 16:33
von noisefloor
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

Re: key event?

Verfasst: Mittwoch 15. April 2020, 17:23
von EddiMiY
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ö

Re: key event?

Verfasst: Mittwoch 15. April 2020, 17:48
von noisefloor
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

Re: key event?

Verfasst: Donnerstag 16. April 2020, 18:27
von Sirius3
@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.