For det første så må vi importere riktig modul, og deretter oppretter vi et vindu. Denne koden skal ordne biffen:

import tkinter as tk

main = tk.Tk()
main.title("Blande farger")
main.geometry("250x320")

main.mainloop()

1 – Vi importerer tkinter, men velger å kalle den for tk for enkelhets skyld.

3 – Oppretter et vindu, og kaller det for «main»

4 – Setter en tittel på vinduet

5 – Setter en størrelse på vinduet

6 – mainloop() er viktig, slik at vinduet fortsetter å eksistere, og ikke avslutte med en gang 😉

OK, da har vi klart å lage et vindu. Nå er det på tide å legge inn noen objekter, og tkinter har mange objekter å velge mellom. Siden vi skal blande farger, så tenker jeg at vi legger inn det som kalles «Scale».

import tkinter as tk

main = tk.Tk()
main.title("Blande farger")
main.geometry("250x320")

r = tk.Scale(main, from_=0, to=100)
tk.Label(main, text="RØD").grid(row=1,column=0)

r.grid(row=0,column=0,padx=10,pady=10)

main.mainloop()

7 – tkinter har et objekt som kalles «Scale». Her lager jeg et slikt objekt, som hører til main, som går fra 0 til 100. Merk! Denne linjen LAGER objektet, men plasserer det ikke i vinduet. Objektet kaller jeg «r».

8 – Jeg lager meg også et objekt som skal vise en liten tekst. Dette objektet kalles en «Label», og det plasserer jeg samtidig i vinduet med «.grid….»

10 – …og her plasserer jeg objektet som jeg kalte «r»

Nå er det mulig å kjøre programmet, og se objektene som vi har lagt inn 🙂

Deretter legger vi enn en Scale for grønn og blå også:

import tkinter as tk

main = tk.Tk()
main.title("Blande farger")
main.geometry("250x320")

r = tk.Scale(main, from_=0, to=100)
g = tk.Scale(main, from_=0, to=100)
b = tk.Scale(main, from_=0, to=100)
tk.Label(main, text="RØD").grid(row=1,column=0)
tk.Label(main, text="GRØNN").grid(row=1,column=1)
tk.Label(main, text="BLÅ").grid(row=1,column=2)

r.grid(row=0,column=0,padx=10,pady=10)
g.grid(row=0,column=1,padx=10,pady=10)
b.grid(row=0,column=2,padx=10,pady=10)

main.mainloop()

Sånn! Da har vi lagt inn det meste vi trenger for å endre litt farger…bortsett fra et felt å bytte fargen på. Til dette kan vi benytte oss av et lerret. I tkinter kalles dette for en Canvas. Vi legger inn en Canvas på denne måten:

import tkinter as tk

main = tk.Tk()
main.title("Blande farger")
main.geometry("250x320")

r = tk.Scale(main, from_=0, to=100)
g = tk.Scale(main, from_=0, to=100)
b = tk.Scale(main, from_=0, to=100)
can = tk.Canvas(main, height=180, width=240, bg="black")
tk.Label(main, text="RØD").grid(row=1,column=0)
tk.Label(main, text="GRØNN").grid(row=1,column=1)
tk.Label(main, text="BLÅ").grid(row=1,column=2)

r.grid(row=0,column=0,padx=10,pady=10)
g.grid(row=0,column=1,padx=10,pady=10)
b.grid(row=0,column=2,padx=10,pady=10)
can.grid(row=2,column=0,columnspan=3)

main.mainloop()

10 – Legger inn en Canvas som kalles «can»

18 – Plasserer «can» i vinduet

Det siste vi trenger å gjøre er å lage en funksjon som endrer fargen på lerretet når vi drar i spakene. Denne funksjonen må kalles opp HVER gang vi endrer verdien på r, b og g:

import tkinter as tk

def show(a):
    R = int(r.get() * 2.55)
    G = int(g.get() * 2.55)
    B = int(b.get() * 2.55)
    can.configure(bg="#%02x%02x%02x" % ((R, G, B)))

main = tk.Tk()
main.title("Blande farger")
main.geometry("250x320")

r = tk.Scale(main, from_=0, to=100, command=show)
g = tk.Scale(main, from_=0, to=100, command=show)
b = tk.Scale(main, from_=0, to=100, command=show)
can = tk.Canvas(main, height=180, width=240, bg="black")
tk.Label(main, text="RØD").grid(row=1,column=0)
tk.Label(main, text="GRØNN").grid(row=1,column=1)
tk.Label(main, text="BLÅ").grid(row=1,column=2)

r.grid(row=0,column=0,padx=10,pady=10)
g.grid(row=0,column=1,padx=10,pady=10)
b.grid(row=0,column=2,padx=10,pady=10)
can.grid(row=2,column=0,columnspan=3)

main.mainloop()

Sånn! Denne skal fungere!