Ir para o conteúdo
• Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

# [Python][PyTeam] Tkinter Rainbow

Kratos    0

...

Pequeno Script Python, feito em Tkinter, que implementa um Rainbow (Arco-íris) em uma Frame.

::: Tkinter Rainbow :::

Aqui o source

```from Tkinter import *
import colorsys

root=Tk()
r=255
g=0
b=0
a=0
w=700
h=500
ca=Canvas(root,  width=w,  height=h)
lin=int(0x008000)

def ustawk(hh, ss, ll):                                                            #returns RGB value
rgb=colorsys.hsv_to_rgb(hh/255.0, ss/255.0,  ll/255.0)
r=hex(int(round(float(rgb[0])*255)))[2:]
g=hex(int(round(float(rgb[1])*255)))[2:]
b=hex(int(round(float(rgb[2])*255)))[2:]
if(len(r)==1):
r="0"+r

if(len(g)==1):
g="0"+g

if(len(b)==1):
b="0"+b
return "#"+r+g+b

print r, g, b
while(g<255):
rs=str(hex(r))[2:]
if(len(rs)==1):
rs="0"+rs

gs=str(hex(g))[2:]
if(len(gs)==1):
gs="0"+gs

bs=str(hex(b))[2:]
if(len(bs)==1):
bs="0"+bs

kolor="#"+rs+gs+bs
ca.create_line(20+a, 20, 20+a, 200,  width=0.1,  fill=kolor)
g+=1
a+=0.3

print r, g, b

while(r>0):
rs=str(hex(r))[2:]
if(len(rs)==1):
rs="0"+rs

gs=str(hex(g))[2:]
if(len(gs)==1):
gs="0"+gs

bs=str(hex(b))[2:]
if(len(bs)==1):
bs="0"+bs

kolor="#"+rs+gs+bs
ca.create_line(20+a, 20, 20+a, 200,  width=0.1,  fill=kolor)
r-=1
a+=0.3

print r, g, b
while(b<255):
rs=str(hex(r))[2:]
if(len(rs)==1):
rs="0"+rs

gs=str(hex(g))[2:]
if(len(gs)==1):
gs="0"+gs

bs=str(hex(b))[2:]
if(len(bs)==1):
bs="0"+bs

kolor="#"+rs+gs+bs
ca.create_line(20+a, 20, 20+a, 200,  width=0.1,  fill=kolor)
b+=1
a+=0.3

print r, g, b
while(g>0):
rs=str(hex(r))[2:]
if(len(rs)==1):
rs="0"+rs

gs=str(hex(g))[2:]
if(len(gs)==1):
gs="0"+gs

bs=str(hex(b))[2:]
if(len(bs)==1):
bs="0"+bs

kolor="#"+rs+gs+bs
ca.create_line(20+a, 20, 20+a, 200,  width=0.1,  fill=kolor)
g-=1
a+=0.3

print r,  g,  b

while(r<255):
rs=str(hex(r))[2:]
if(len(rs)==1):
rs="0"+rs

gs=str(hex(g))[2:]
if(len(gs)==1):
gs="0"+gs

bs=str(hex(b))[2:]
if(len(bs)==1):
bs="0"+bs

kolor="#"+rs+gs+bs
ca.create_line(20+a, 20, 20+a, 200,  width=1,  fill=kolor)
r+=1
#g+=1
a+=0.3

print r,  g,  b
a=0
for h in range(254):
ca.create_line(20+a, 250, 20+a, 450,  width=1,  fill=ustawk(h, 127, 127))
a+=1

ca.pack(fill=BOTH, expand=YES)
root.mainloop()
```

Fonte: www.python-forum.org

Kratos -

#### Partilhar esta mensagem

##### Partilhar noutros sites
Krazy_Kaos    0

thanx (for the source )

## Crie uma conta ou ligue-se para comentar

Só membros podem comentar

## Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

## Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×