from tkinter import * import random #määran tahvli laiuse ja kõrguse tahvli_laius = 500 tahvli_korgus = 500 #Deklareerin listid valitud värvide ja tekstifaililt loetud värvide kogumiseks v_list = [] toonide_list = [] #Loon funktsioonid checkbox värvide valiku jaoks def roosa(): if var1.get() == 1: v_list.append("pink") else: v_list.remove("pink") def sinine(): if var2.get() == 1: v_list.append("lightblue") else: v_list.remove("lightblue") def kollane(): if var3.get() == 1: v_list.append("yellow") else: v_list.remove("yellow") def must(): if var4.get() == 1: v_list.append("grey") else: v_list.remove("grey") def oranz(): if var5.get() == 1: v_list.append("orange") else: v_list.remove("orange") def roheline(): if var6.get() == 1: v_list.append("lightgreen") else: v_list.remove("lightgreen") def punane(): if var7.get() == 1: v_list.append("red") else: v_list.remove("red") #Kogun kõik värvid, mis kasutaja valib, listile def toonid(): return v_list def sule_aken(): aken.destroy() #Prindin tahvlile sõnumid def prindi_tervitus(): tekst_toonidega = "SUPER! Aitäh, " + var_nimi.get() + "!" tekst_ilma_toonideta = var_nimi.get() + ", see on ok aga proovi värve ka!" if len(toonid()) > 0: tahvel.create_text(250, 100, text = tekst_toonidega, font = "times 20 italic bold", fill = "white") else: tahvel.create_text(250, 100, text = tekst_ilma_toonideta, font = "times 20 italic bold", fill = "#800000") #Põhifunktsioon mis käivitub "loo oma muster" nupuga. Loob kasutaja valitud suurusega ruudud ja täidab need värvidega def loo_muster(): pos = [] a = 0 if len(var_xy.get()) == 0: ei_ruutude_arv = tahvel.create_text(250, 200, text = "Sisesta palun ruutude arv!", fill = "red", font = "Times 14 italic bold") ruudud_entry.delete(0, END) elif "." in var_xy.get() or "," in var_xy.get(): tahvel.delete("all") tahvel.create_text(250, 200, text = "Sisesta palun täisarv nagu (10, 11, 15... 20, 30 jne)", font = "Times 14 italic bold", fill = "red") ruudud_entry.delete(0, END) elif len(var_nimi.get()) == 0: tahvel.delete("all") tahvel.create_text(250, 200, text = "Sisesta palun oma nimi!", fill = "red", font = "Times 14 italic bold") else: ruutude_arv = tahvli_laius / int(var_xy.get()) ruudu_xy = tahvli_laius / ruutude_arv pos = [] for rida in range(round(ruutude_arv)): x = 0 + (ruudu_xy * rida) for rivi in range(round(ruutude_arv)): y = 0 + (ruudu_xy * rivi) if len(toonid()) > 0: rect = tahvel.create_rectangle(x + ruudu_xy, y + ruudu_xy, x, y) pos.append(tahvel.coords(rect)) tahvel.create_rectangle(pos[a][0], pos[a][1], pos[a][2], pos[a][3], fill = toonid()[random.randint(0, len(toonid()) - 1)]) a += 1 else: rect = tahvel.create_rectangle(x + ruudu_xy, y + ruudu_xy, x, y, fill = "white") prindi_tervitus() #Moodustab programmi akna aken = Tk() aken.title("Moodustame mustri!") #Loon muutujad checkboksi sisestuste salvestamiseks var1 = IntVar() var2 = IntVar() var3 = IntVar() var4 = IntVar() var5 = IntVar() var6 = IntVar() var7 = IntVar() #Muutujad entry lahtrite andmete hoidmiseks var_nimi = StringVar() var_xy = StringVar() #List checkboxi muutujatega var_list = [var1, var2, var3, var4, var5, var6, var7] #List funktsioonidest mis käivituvad checkboksi märkinise järel def_list = [roosa, sinine, kollane, must, oranz, roheline, punane] #Tekstifaililt värvide lugemine ja listile kogumine file = open("värvid.txt", encoding = "UTF-8") for toon in file: toonide_list.append(toon.strip()) #Loon tahvli, kuhu joonistan mustri tahvel = Canvas(aken, width = tahvli_laius, height = tahvli_korgus, bg = "white") #Aken tahvli kõrval nuppude paigutamiseks frame = Frame(aken) #Loon lahtrid andmete kogumiseks kasutajalt nimi = Label(frame, text = "Sisesta palun oma nimi:", fg = "blue").grid(row = 0, column = 0, sticky = "nw") nimi_entry = Entry(frame, textvariable = var_nimi) ruudud = Label(frame, text = "Ruutude suurus (täisarv)", fg = "blue").grid(row = 2, column = 0, sticky = "w") ruudud_entry = Entry(frame, textvariable = var_xy) label = Label(frame, text = "Vali mustri värv:").grid(row = 4, column = 0, pady = 20) #Paigutan checkboksid for check in range(len(toonide_list)): Checkbutton(frame, text = toonide_list[check], variable = var_list[check], command = def_list[check]).grid(row = 5 + check, column = 0, sticky = "w") #Nupud sisse = Button(frame, text = "Loo oma muster!", fg = "blue", command = loo_muster).grid(row = 12, column = 0, pady = 50) sule = Button(frame, text = "Sule aken", fg = "blue", command = sule_aken).grid(row = 13, column = 0, pady = 10) ruudud_entry.grid(row = 3, column = 0) nimi_entry.grid(row = 1, column = 0, sticky = "w") frame.grid(row = 0, column = 0, sticky = "n") tahvel.grid(row = 0, column = 1) aken.mainloop()
Pealkiri
Selle lehe kirjapilt peaks ikkagi muutuma, st peaks midagi paistma, kui see midagi on tavatekstina
Suur pealkiri ka