# coding: latin1 # En mini-version av exemplet i kap 10 # Skriver en användarstyrd saga from Tkinter import * def skrivsaga(): person = entry1.get().encode("latin1") # Om man matar in åäö sak = entry2.get().encode("latin1") # blir det Unicode, så verb = entry3.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." text.insert(END,saga) # Skriv den sist i textrutan root = Tk() # Skapa rotfönstret root.title("Din egen saga") adj1 = StringVar() # Variabler att spara ord i adj2 = StringVar() adj3 = StringVar() kropp= StringVar() #Skapa grafiska komponenter label0 = Label(root,text="Fyll i information till sagan!") label1 = Label(root,text="Person:") label2 = Label(root,text="Sak:") label3 = Label(root,text="Verb:") label4 = Label(root,text="Adjektiv:") label5 = Label(root,text="Kroppsdel:") entry1 = Entry(root) entry2 = Entry(root) entry3 = Entry(root) button1= Checkbutton(root,text="fånig",variable=adj1,onvalue=", fånig") button2= Checkbutton(root,text="färsk",variable=adj2,onvalue=", färsk") button3= Checkbutton(root,text="luden",variable=adj3,onvalue=", luden") button4= Button(root,text="Skriv saga",command=skrivsaga) radio1 = Radiobutton(root,text="magmun",variable=kropp,value="magmun") radio2 = Radiobutton(root,text="stortå",variable=kropp,value="stortå") radio3 = Radiobutton(root,text="mjälte",variable=kropp,value="mjälte") text = Text(root,width=75,height=10,wrap=WORD) root.grid() # Organisera i rader och kolumner label0.grid(row=0,column=0,columnspan=2,sticky=W) label1.grid(row=1,column=0,sticky=W) label2.grid(row=2,column=0,sticky=W) label3.grid(row=3,column=0,sticky=W) label4.grid(row=4,column=0,sticky=W) label5.grid(row=5,column=0,sticky=W) entry1.grid(row=1,column=1,sticky=W) entry2.grid(row=2,column=1,sticky=W) entry3.grid(row=3,column=1,sticky=W) button1.grid(row=4,column=1) button2.grid(row=4,column=2) button3.grid(row=4,column=3) button4.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) text.grid(row=7,column=0,columnspan=4) root.mainloop() # Visa fönstret och vänta på händelser