• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Kratos

[Python][PyTeam] Tkinter Rainbow

2 mensagens neste tópico

... :cheesygrin:

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 - :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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