Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Python Tkinter - nefunguje .get() u Entry

Nejde to jednoduse proto, ze ve funkci Overit porovnavas cislo s retezcem, nebot get() vraci retezec (=text), ne cislo. Staci pak navratovou hodnotu get() prevest na int. Porad to ale neni osetrene proti chybam, napriklad pokud nezadam nic, program spadne nebo kdyz zadam pismeno, program spadne atd.

Jeste nechapu, proc jsi pouzil u "#prvni radek" tolik Labelu, kdyz staci jen jeden.

#-*- coding: utf-8 -*-

import Tkinter as Tki

# GUI
base=Tki.Tk()
base.option_add('*Font', 'Verdana 10')

# Promenne
a = 2
b = 3
su = a + b

# Funkce
def Overit():
    if su == int(inp.get()):
        verdict.set("OK")
    else:
        verdict.set("Špatně")

# Prvni radek
Text = Tki.Label(base, text="%i + %i = "%(a,b), bd=5)
Text.grid(row=0,column=0)

inp = Tki.StringVar()
ent = Tki.Entry(base, bd=5, textvariable = inp)
ent.grid(row=0, column=1)

Tki.Button(base, bd=5, text=u"Ověřit", command = Overit).grid(row=0, column=3)

# Druhy radek
verdict = Tki.StringVar()
Tki.Label(base, bd=5, width=50, textvariable = verdict).grid(row=1, column=0,columnspan=4)

Tki.mainloop()

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny