# coding: latin1 # En enklare version av exemplet i Dawson kap 10 # Användaren får skapa en egen saga from Tkinter import * def skrivsaga(): person = inmatningPerson.get().encode("latin1") # Om man matar in åäö sak = inmatningSak.get().encode("latin1") # blir det Unicode, så verb = inmatningVerb.get().encode("latin1") # säkrast att konvertera adjektiv = adj1.get()+adj2.get()+adj3.get() kroppsdel= kropp.get() saga = "Det var en gång en hjälte som hette "+person saga+= " som sökte världen kring efter en helig "+sak saga+= " men just när "+person+" insett det hopplösa" saga+= " i att hitta en helig "+sak+" var det en "+sak saga+= " som hittade "+person+"! En märklig"+adjektiv saga+= " känsla i "+person+"s "+kroppsdel+" fick då " saga+= person+" att "+verb+" våldsamt och länge. Slut." textruta.insert(END, saga) # Skriv den sist i textrutan roten = Tk() # Skapa rotfönstret roten.title("Din egen saga") adj1 = StringVar() # Variabler att spara ord i adj2 = StringVar() adj3 = StringVar() kropp= StringVar() #Skapa grafiska komponenter etikett0 = Label(roten, text="Fyll i information till sagan!") etikett1 = Label(roten, text="Person:") etikett2 = Label(roten, text="Sak:") etikett3 = Label(roten, text="Verb:") etikett4 = Label(roten, text="Adjektiv:") etikett5 = Label(roten, text="Kroppsdel:") inmatningPerson = Entry(roten) inmatningSak = Entry(roten) inmatningVerb = Entry(roten) kryssruta1= Checkbutton(roten, text="fånig", variable=adj1, onvalue=", fånig") kryssruta2= Checkbutton(roten, text="färsk", variable=adj2, onvalue=", färsk") kryssruta3= Checkbutton(roten, text="luden", variable=adj3, onvalue=", luden") tryckknapp= Button(roten, text="Skriv saga", command=skrivsaga) radio1 = Radiobutton(roten, text="magmun", variable=kropp, value="magmun") radio2 = Radiobutton(roten, text="stortå", variable=kropp, value="stortå") radio3 = Radiobutton(roten, text="mjälte", variable=kropp, value="mjälte") textruta = Text(roten, width=75, height=10, wrap=WORD) roten.grid() # Organisera i rader och kolumner etikett0.grid(row=0, column=0, columnspan=2, sticky=W) etikett1.grid(row=1, column=0, sticky=W) etikett2.grid(row=2, column=0, sticky=W) etikett3.grid(row=3, column=0, sticky=W) etikett4.grid(row=4, column=0, sticky=W) etikett5.grid(row=5, column=0, sticky=W) inmatningPerson.grid(row=1, column=1, sticky=W) inmatningSak.grid(row=2, column=1, sticky=W) inmatningVerb.grid(row=3, column=1, sticky=W) kryssruta1.grid(row=4, column=1) kryssruta2.grid(row=4, column=2) kryssruta3.grid(row=4, column=3) tryckknapp.grid(row=6, column=0, sticky=W) radio1.grid(row=5, column=1) radio2.grid(row=5, column=2) radio3.grid(row=5, column=3) textruta.grid(row=7, column=0,columnspan=4) roten.mainloop() # Visa fönstret och vänta på händelser