NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Nevypíše se mi text v lablu

Aktivity
Avatar
Jiří Velich:30.5.2015 9:49

Zdravím začínám s programováním, a první nápad je udělat si jednoduchou databazy, zasekl jsem se při vložení dat do lablu. meli se zobrazit data z jmeno1, priijmeni1,mesto1, což se nestane. ale pokud mam ten label v definici tak mi to funguje. prosím o radu. i když myslím že by to melu byt vraceno pře return ale nevím jak

from tkinter import *


barva1 = "#6E7E94"
barva2 = "#56C5FF"

def poslat():
    jmeno1 = jmeno.get()
    prijmeni1 = prijmeni.get()
    mesto1 = mesto.get()
    vstup1.delete(0,END)
    vstup2.delete(0,END)
    vstup3.delete(0,END)
    return(jmeno1)

root = Tk()
root.geometry("700x500")
root.configure(bg= barva1)

jmeno = StringVar()
prijmeni = StringVar()
mesto= StringVar()

jmeno1 = ""
prijmeni1 = ""
mesto1 = ""



#jmeno
vstup1 = Entry(root,textvariable = jmeno)
vstup1.place(x=100,y=25)
label = Label(root, text="jmeno:",bg = barva1,fg= barva2 )
label.place(x=40,y=25)

#prijmeni
vstup2 = Entry(root,textvariable = prijmeni)
vstup2.place(x=100,y=50)
labe2 = Label(root, text="prijmeni:",bg = barva1,fg= barva2 )
labe2.place(x=40,y=50)

#mesto
vstup3 = Entry(root,textvariable = mesto)
vstup3.place(x=100,y=75)
labe3 = Label(root, text="mesto:",bg = barva1,fg= barva2 )
labe3.place(x=40,y=75)

text=Label(root,text = " %s \t %s \t %s " %(jmeno1,prijmeni1,mesto1))
text.place(x=40,y=250)

print(jmeno1,prijmeni1,mesto1)



tlac = Button(root,command=poslat,text = "  Stiskni  ")
tlac.place(x=250,y=25)









root.mainloop()
 
Odpovědět
30.5.2015 9:49
Avatar
Vítek Peterka:18.8.2015 8:58

No v pythonu už jsem chvíly nedělal a Tkintru už vůbec ne ale co si pamatuji....

Nemělo by tam být něco jako

labe1.pack()

?

 
Nahoru Odpovědět
18.8.2015 8:58
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Jiří Velich
gcx11:18.8.2015 9:36

Ahoj, funkce poslat vrací akorát proměnnou jmeno1 a nikde nic nenastavuješ na zobrazení. Ten return je tam zbytečný, nic tam užitečného nedělá.

Místo toho by bylo lepší ten text nastavit do toho labelu. Zde je upravená verze funkce poslat():

def poslat():
    jmeno1 = jmeno.get()
    prijmeni1 = prijmeni.get()
    mesto1 = mesto.get()
    vstup1.delete(0,END)
    vstup2.delete(0,END)
    vstup3.delete(0,END)
    print(jmeno1,prijmeni1,mesto1)
    text["text"] = " %s \t %s \t %s " %(jmeno1,prijmeni1,mesto1)
text["text"]

nastaví text labelu.

 
Nahoru Odpovědět
18.8.2015 9:36
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.