Text in Entry einfügen, bei Klick löschen.

Fragen zu Tkinter.
Antworten
dulac
User
Beiträge: 7
Registriert: Donnerstag 27. März 2014, 21:03
Wohnort: Pythonesien

heyho,
Ich würde gerne einen Art Taschenrechner mit Python prorammieren.
Ich hab das Programm auch eig. schon fertig, allerdings würde ich gerne etwas einfügen, dass am Anfang bei dem Passwort-Entry erst steht "Passwort eingeben". Wenn ich dann draufklicke geht es weg und ich kann das PW eingeben. Das selbe dann auch beim eigentlichen Taschenrechner Programm.

Hier ist das Programm, bitte nicht über die ganzen global-Variablen beschweren, ich weiß nicht wie ich das anders lösen soll-_-

Code: Alles auswählen

from  tkinter import *
from math import sqrt

def clickButtonAdd():
    global c
    a=int(entry1.get())
    b=int(entry2.get())
    c=a+b
    labelErg.config(text=c)

def clickButtonMulti():
    global c
    a=int(entry1.get())
    b=int(entry2.get())
    c=a*b
    labelErg.config(text=c)

def clickButtonSub():
    global c
    a=int(entry1.get())
    b=int(entry2.get())
    c=a-b
    labelErg.config(text=c)

def clickButtonDivi():
    global c
    a=int(entry1.get())
    b=int(entry2.get())
    c=a/b
    labelErg.config(text=c)
    while a>b:
        a-=b
    label=str(c)+",  Rest: "+str(a)
    labelErg.config(text=label)

def clickButtonWurzel():
    global c
    a=int(entry1.get())
    c=sqrt(a)
    labelErg.config(text=c)

def clickButtonPotenz():
    global c
    a=int(entry1.get())
    b=int(entry2.get())
    c=a**b
    labelErg.config(text=c)

def lockScreen():
    global entryPasswort,buttonPasswort,buttonNeuesPasswort,z,k

    entryPasswort=Entry(root,show="*")
    entryPasswort.place(x=110,y=10,width=110,height=20)


    buttonPasswort=Button(root)
    buttonPasswort.place(x=120,y=40,width=90,height=20)
    buttonPasswort.config(text="Bestaetigen")
    buttonPasswort.config(command=clickButtonPasswort)


def clickButtonPasswort():
    pwEingabe=entryPasswort.get()
    if pwEingabe==passwort:
        buttonPasswort.destroy()
        entryPasswort.destroy()
        taschenrechner()
    else:
        global labelFalsch,buttonFalsch
        buttonPasswort.destroy()
        entryPasswort.destroy()
        labelFalsch=Label(root)
        labelFalsch.place(x=110,y=10,width=110,height=20)
        labelFalsch.config(text="Falsches Passwort")

        buttonFalsch=Button(root)
        buttonFalsch.place(x=120,y=40,width=90,height=20)
        buttonFalsch.config(text="Neuer Versuch!")
        buttonFalsch.config(command=clickButtonFalsch)

def clickButtonFalsch():
    labelFalsch.destroy()
    buttonFalsch.destroy()

    global buttonNeuesPasswort,entryPasswort,buttonPasswort

    entryPasswort=Entry(root,show="*")
    entryPasswort.place(x=110,y=10,width=110,height=20)

    buttonPasswort=Button(root)
    buttonPasswort.place(x=120,y=40,width=90,height=20)
    buttonPasswort.config(text="Bestaetigen")
    buttonPasswort.config(command=clickButtonPasswort)




def clickZurueckButton():
    global entry1,entry2
    zurueckButton.destroy()
    entry1.destroy()
    entry2.destroy()
    labelErg.destroy()
    labelAnzeige1.destroy()
    labelAnzeige2.destroy()
    buttonAdd.destroy()
    buttonMulti.destroy()
    buttonSub.destroy()
    buttonDivi.destroy()
    buttonWurzel.destroy()
    buttonPotenz.destroy()
    buttonWeiterrechnen.destroy()
    lockScreen()

def taschenrechner():
    global entry1,entry2,labelErg,labelAnzeige1,labelAnzeige2,buttonAdd,buttonMulti,buttonSub,buttonDivi,buttonWurzel,buttonPotenz,zurueckButton,buttonWeiterrechnen


    zurueckButton=Button(root)
    zurueckButton.place(x=0,y=0,width=50,height=20)
    zurueckButton.config(text="Zurueck")
    zurueckButton.config(command=clickZurueckButton)

    entry1=Entry(root)
    entry1.place(x=50,y=50,width=110)

    entry2=Entry(root)
    entry2.place(x=170,y=50,width=110)

    labelErg=Label(root)
    labelErg.place(x=50,y=175,width=230)
    labelErg.config(bg="white")

    labelAnzeige1=Label(root)
    labelAnzeige1.place(x=50,y=150,width=230)
    labelAnzeige1.config(bg="white")
    labelAnzeige1.config(text="Ergebnis:")

    labelAnzeige2=Label(root)
    labelAnzeige2.place(x=50,y=20,width=230)
    labelAnzeige2.config(bg="white")
    labelAnzeige2.config(text="Lassen sie den Computer rechnen:")

    buttonAdd=Button(root)
    buttonAdd.place(x=50,y=80,width=50)
    buttonAdd.config(command=clickButtonAdd)
    buttonAdd.config(text="Add")

    buttonMulti=Button(root)
    buttonMulti.place(x=110,y=80,width=50)
    buttonMulti.config(command=clickButtonMulti)
    buttonMulti.config(text="Multi")

    buttonSub=Button(root)
    buttonSub.place(x=170,y=80,width=50)
    buttonSub.config(command=clickButtonSub)
    buttonSub.config(text="Sub")

    buttonDivi=Button(root)
    buttonDivi.place(x=230,y=80,width=50)
    buttonDivi.config(command=clickButtonDivi)
    buttonDivi.config(text="Divi")

    buttonWurzel=Button(root)
    buttonWurzel.place(x=50,y=110,width=110)
    buttonWurzel.config(command=clickButtonWurzel)
    buttonWurzel.config(text="Wurzel")

    buttonPotenz=Button(root)
    buttonPotenz.place(x=170,y=110,width=110)
    buttonPotenz.config(command=clickButtonPotenz)
    buttonPotenz.config(text="Potenz")

    buttonWeiterrechnen=Button(root)
    buttonWeiterrechnen.place(x=50,y=205,width=230,height=20)
    buttonWeiterrechnen.config(text="Damit Weiterrechnen!",command=weiterrechnen)

def weiterrechnen():
    entry1.delete(0,END)
    entry2.delete(0,END)
    entry1.insert(0,c)


passwort="das weiss niemand"
root=Tk()
root.config(bg="darkblue")
root.geometry("320x245")
root.title("Taschenrechner")

lockScreen()



root.mainloop()
Und ja, während ich das schreibe fällt mir auch auf ich kann die Buttons,Labels und Entrys auch schnelelr erstellen wenn ich in die "Erstellzeile" das schreibe was dann bei .config() steht...will das grad nich ändern^^

Danke für eure Lösungen;)

Code: Alles auswählen

dulac="anfaenger"
if dulac==anfaenger:
    print("Nehmt Rücksicht auf AnfaengerO_o")
Schorlem
User
Beiträge: 40
Registriert: Dienstag 3. Juni 2014, 16:37

Das machste mit 'nem Event:

Code: Alles auswählen

entryPasswort.bind("<Mouse-1>", lambda: entryPasswort.delete(0, END))
(END ist nur ein tkinter-Schlüsselwort, man kann auch einfach "end" benutzen.)
Natürlich musst du davor (zum Beispiel mit .insert()) den Text einfügen.
Ich weiß grade nicht genau, wie man das per .config() machen würde, da ich das selber kaum benutze^^

Zum Code würde ich irgendwann auch was sagen, bin aber im Moment zu faul :P
Diese Nachricht wurde maschinell erstellt und ist daher ohne Unterschrift gültig.
Antworten