Escolar Documentos
Profissional Documentos
Cultura Documentos
" # #
% $&'"#$
! ( )$ * ' $ ( )$
/ * 0
* 1 2
30 ! 4 .
5 * *) 0 !
*" $%& 2 30 !
1 5 6 & '& (
(--- *+
6 & 1 !
7
!&" 1 8 1 30
4 ! 7 ! 8 " . 92
0 *
Josué Labaki
# $%&
/ & :
;< 2$ =& 2
labaki@feis.unesp.br
2
+ &,
-
! ., /
> * " ?
@ , A
! $ ! &$ ! 0
>B , C
@ - D
E$ - #;= >>
! , &, 1 2/
> >?
@F >G
E * @>
! 3 !4 $ & &!&$ 56
> - % @E
! 3 ! 7! 50
> @G
@5 & @H
E$ 8 ! : 1 E>
? EA
A# *) EH
! 3 -' $ ,
7 $8 /9
> ) ?A
@ #;= ?G
E * 30 AI
?# A?
! 3 : -;
-,$ 9<
=>,
4! !>
!7 ! 8 02
3
! .,
, $%&
" & " 0
1 ' =
/5 1 " +
!
- 2 30 *
! * 30
*" $%& J - )
" ,
& $%& )
"
" , ' * 37 5 1 30
+
< ! 8
, ! 30
" '
#;= ! " +
* 0 ! ! 1 1 ! ; * )
#;=
! ) - 3 K !
! &
B" * '
L M
+! 0
1 8
= ! * 0 L
2 M
! & " ) '
& L & NO M
+
* 0 $ & NO ) 1 * 0 L
2 M
!
" K * 0
P) 30 , ! =
/5
& K F '
4
>
- + L
$ * M
& Q ' " *
- +
! & < ! 0
" K * 30 - # $
5? ->
! .
2 * & , ! 4
* ! -
#;= < " 0
! : ,! * 1
& %! "
#;= P ) 1
1
To bind: ligar. Também nos referiremos ao processo de binding por “fazer binding”, “ligar”, “relacionar”,
“atribuir”, etc.
5
4 & K : &
: % K #;= *
2 ! 1 !
" #;=
! !
* 0 ! & " 30
! ) * L M
!
* 0 X & * 0 L
F & M
1
F * 0 X! ) R * & ,
@
1 ! " * 7 K ! 1 K
& )
" 0 #;=
! * 8
8* 8 , , & 1 *
8 P * 8* ) =
/5
"! 30 , ! =
/5 *
" " !
, =
/5 K ! 8
! 3 7
S #;=
! $ ! &$!
2? , ! B',
! !-.
0 - 0 ! 0
#;= 8 ) -
2
Não é necessário implementar os exemplos deste Módulo. Todos eles estão disponíveis para download a
partir de http://labaki.tk.
6
& * 1 '
+
! . & " 0
* / #;= )
& ! "& !
& L M' L M
+ ' ' & +
J 1
30 . -
"
"1 & ) . !
* 7 & !* 8 ! P) & "
30 - !
30 " ,
! < ! *
* ! *
2 &
- ! 1 "! 0 " 8 " 9< -
& $ ! 1 ! #;= 8
* 30
7
5? -$ C, $D,
&1
1 "
- ( $ < 1 ! * ' ) .
+ * 0 ' & )+ 0
1 self.fr1 ! - !
* : , * * K 30
- 8
1 - * + +, - .
$ / & 37
30 8 - $
1 * 0
raiz=Tk()
Janela(raiz)
raiz.mainloop()
'>!&$E
8
) ! * )
$%& 0 ) 8 ! *
1 0 ,
30 T
* , U * 0 K T
* , U
!
8 * T
*U
- 37 30 "
$ ! * 8 37 * 0
self.botao['bg']='green'
; " ) & 30 1
< 1 ! & ) & 0 )
- ! )
& $ ! 0 " &
1 & -
F3 ; 1 ! * 0 ' 0
& ! * 0 ,+ )
K & 8 ! 0 V
$ ! 30 * 0 K
. ! 1 < 1 ! *
30 37 -
• * 0 4
& 1 W
• * 0 W
• 1 * 0
'
L M
! L &M
! L M
! L" M
!
+
W
• $ 2 1
9
from Tkinter import *
class Janela:
def __init__(self,toplevel):
self.fr1 = Frame(toplevel)
self.fr1.pack()
self.botao1 = Button(self.fr1,text='Oi!')
self.botao1['background']='green'
self.botao1['font']=('Verdana','12','italic','bold')
self.botao1['height']=3
self.botao1.pack()
raiz=Tk()
Janela(raiz)
raiz.mainloop()
'>!&$E
P) ) &
* 7 * * 0 !P & >@ "
'
* +
! * 0 &! <-6 & >C * 0
& & >@ !
1 ! 30 L M
10
! 3 37
" * 7 " ! & 2 "*
& ) 37 ! 0
6? $,
-,$ ! &$D,
&1 !
* 1 30
* 7 Q 0 *
) !
= ) 1 -
, K ! 5F
' +
! 6=
#B ' +
! $' + ' * 1+
!
-
- ! 3
1 - " ! *
, <0 0 * & *
- ! 0 L 3 M " Q *
0 3 0 V
0 $ $ !
, * * 7 1 ! * 0 L 9
M
11
! * 0 L & 9
M ! !
* 1 * 0 < -
9 "
) ' * 0 1 K ! 1 + K !
" ! 1 / !
S 30 ! * 7 37
#;=
self.container1=Frame(instancia_Tk)
self.container2=Frame(instancia_Tk)
self.container3=Frame(instancia_Tk)
self.container1.pack()
self.container2.pack()
self.container3.pack()
Button(self.container1,text='B1').pack()
Button(self.container2,text='B2').pack(side=LEFT)
Button(self.container2,text='B3').pack(side=LEFT)
self.b4=Button(self.container3,text='B4')
self.b5=Button(self.container3,text='B5')
self.b6=Button(self.container3,text='B6')
self.b6.pack(side=RIGHT)
self.b4.pack(side=RIGHT)
self.b5.pack(side=RIGHT)
raiz=Tk()
Packing(raiz)
raiz.mainloop()
12
'>!&$E
! R ,' X $+ *
! 0 0 & * 0
$! 0 " 1 <
,' X $+
! * 0 !
7 / * 7 0
! K 30 ,' X5 F + Y * 0
L @M S * 0 L EM S
30 K * 7
'
*?! *A! *C+ ,' X6=
#B + *
P) S
1 '
*C! *?! *A+
1 9 " * 7 ! . 37
#;=
W , -
23 3 4$ ' % 5
5 $ $ 67$ %
7 '8
13
! , &, 1
O
" & 0 37 1
" !
& 37
4 * & $
1 , 6 - /
2? 7 $ &$4$'
L M < 6
$ 1 !
* 0 ! "<Button-1>"!
< 6 "<Return>"
/ & $ + 1
* 0 * * 0 1
K 10 ( &
self.botaoverde.bind("<Button-1>", self.muda_cor)
Y K 1 * 1
8 - " * 0
1 - !9 !
1 9 37
30 )
" & ' 5 !, ! +
14
from Tkinter import *
class Janela:
def __init__(self,toplevel):
self.frame=Frame(toplevel)
self.frame.pack()
self.botaoverde=Button(self.frame,text='Clique')
self.botaoverde['background']='green'
self.botaoverde.bind("<Button-1>",self.muda_cor)
self.botaoverde.pack()
raiz=Tk()
Janela(raiz)
raiz.mainloop()
'>!&$E
15
; * 0 & $ +
* 0 K
, *) *)
*) 37 *
37 0 & ! 1
*) ) ! *
muda_cor(self, event)
: $ ); ! * 0
0 * #;= 2 " ! 8
: $ 1;! * 0
* *
& )
2
self.botaoverde.bind(("<Button-1>","<Button-3>"), self.muda_cor)
* 0 * 0
* 30
- * 0 K
* - F3 1
"<ButtonRelease-X>" * 0 Z
'
Z >!@ E! * 0
+ "<Motion>"
* - ! "<Leave>" -
16
5? F$-$ 7 $ & ->
!&$
- "
/ &
'
J - 1 ! 1 +2
! " : &
! K K &
" < 0
L /5 M
! " 1 8 P
!
2B=
F[ ! *
1* 0
- ,
; ,
, )6 $ + -
/! - , )
P) *
7 $ ,1
< 6 "<Return>"
/5 "<Delete>"
, "<BackSpace>"
2 "<Escape>"
2 S "<Left>"
2 S "<Right>"
2 "<Up>"
2 * 1 "<Down>"
- & "<FocusIn>"
- "<FocusOut>"
17
; "<KeyPress-ALFA>"
5F ! "<KeyRelease-ALFA>" "
P "<KeyPress-ALFA>" "ALFA" F !
* "<Button-1>" "<1>"
B" $
<$ 37 "
0 = ! "<Double-Button-1>"
* 0 "<Triple-KeyPress-P>"
$ &
* 0 W
"<Any-KeyPress>" 0 "<Any-Button>"!
P) 1 *
37 30 * 7 ! ! 5
= * 0 . 0
0 2;<\ < * 0 6=
2 /! "
1 #6 P !6=
/# F5 O
" 5 0 3
1 * - $ 9 1
! )
P &
! ! <0 1
* $ K 30
8 * 7
18
# -*- coding: cp1252 -*-
from Tkinter import *
class Janela:
def __init__(self,toplevel):
self.frame=Frame(toplevel)
self.frame.pack()
self.frame2=Frame(toplevel)
self.frame2.pack()
self.titulo=Label(self.frame,text='VIDENTE 2005',
font=('Verdana','13','bold'))
self.titulo.pack()
self.msg=Label(self.frame,width=40,height=6,
text = 'Adivinho o evento ocorrido!')
self.msg.focus_force()
self.msg.pack()
# Definindo o botão 1
self.b01=Button(self.frame2,text='Botão 1')
self.b01['padx'],self.b01['pady'] = 10, 5
self.b01['bg']='deepskyblue'
self.b01.bind("<Return>",self.keypress01)
self.b01.bind("<Any-Button>",self.button01)
self.b01.bind("<FocusIn>",self.fin01)
self.b01.bind("<FocusOut>",self.fout01)
self.b01['relief']=RIDGE
self.b01.pack(side=LEFT)
# Definindo o botão 2
self.b02=Button(self.frame2,text='Botão 2')
self.b02['padx'],self.b02['pady'] = 10, 5
self.b02['bg']='deepskyblue'
self.b02.bind("<Return>",self.keypress02)
self.b02.bind("<Any-Button>",self.button02)
self.b02.bind("<FocusIn>",self.fin02)
self.b02.bind("<FocusOut>",self.fout02)
self.b02['relief']=RIDGE
self.b02.pack(side=LEFT)
19
def keypress01(self,event): self.msg['text']='ENTER sobre o Botão 1'
def keypress02(self,event): self.msg['text']='ENTER sobre o Botão 2'
def button01(self,event): self.msg['text']='Clique sobre o Botão 1'
def button02(self,event): self.msg['text']='Clique sobre o Botão 2'
def fin01(self,event): self.b01['relief']=FLAT
def fout01(self,event): self.b01['relief']=RIDGE
def fin02(self,event): self.b02['relief']=FLAT
def fout02(self,event): self.b02['relief']=RIDGE
raiz=Tk()
Janela(raiz)
raiz.mainloop()
'>!&$E
* ! * $ + $ !
! - P
< 6 0 & &
! 0 - !
0 >P : 1 * 0
! < 6 * 0 >
& >)! " & ! *
<0 1 ]( $ " ^ ]( $ $ ^
0 > Y * 0
20
30 #;=' 1 * 1 * 0
* 0+ 30 5 * .
30 9
K & * : $ );
& !0 " * 0 ) 1
* 0 )
" & & =
* 0 - 0
, ! * 0
& ! "<ButtonRelease>"
! ! " !
' K! L M * 0
+
! 0 & "
& ! * / !
&" * *
- 30 - !
< ! * 30
30 - ! 1 "
self.nome_do_widget['command']=self.event_handler
; 8 30
K *) ' + 0
&
1 30
&
21
from Tkinter import *
class Janela:
def __init__(self,toplevel):
self.frame=Frame(toplevel)
self.frame.pack()
self.b1=Button(self.frame)
self.b1.bind("<Button-1>", self.press_b1)
self.b1.bind("<ButtonRelease>", self.release_b1)
self.b1['text'] = 'Clique em mim!'
self.b1['width'], self.b1['bg'] = 20, 'brown'
self.b1['fg']='yellow'
self.b1.pack(side=LEFT)
self.b2=Button(self.frame)
self.b2['width'], self.b2['bg'] = 20, 'brown'
self.b2['fg']='yellow'
self.b2.pack(side=LEFT)
self.b3=Button(self.frame, command=self.click_b3)
self.b3['width'], self.b3['bg'] = 20, 'brown'
self.b3['fg']='yellow'
self.b3.pack(side=LEFT)
def press_b1(self,event):
self.b1['text']=''
self.b2['text']='Errou! Estou aqui!'
def release_b1(self,event):
self.b2['text']=''
self.b3['text']='OOOpa! Mudei de novo!'
def click_b3(self):
self.b3['text']='Ok... Você me pegou...'
instancia=Tk()
Janela(instancia)
instancia.mainloop()
22
'>!&$E
* 0 & & )
" & 8
* 0 " 1 * 0 )
"
2 * 0 1 0 0
* 0 "
* 0 )
! 3 !4 $ & !&$
2? D,
&1
- 7 & "
" 0 !
1 & 30 -N K !
%! * &
% 37 30 )
" * 7
* ! 1 ' &+
& ! 1 0 !
30 , $ 1 !show = '*' 1* " !
K " "
1 & &
* & "
30 , & <
30 30 3 1
23
* - ' " * 0
+
self.frame1=Frame(toplevel)
self.frame1.pack()
self.frame2=Frame(toplevel)
self.frame2.pack()
self.frame3=Frame(toplevel)
self.frame3.pack()
self.frame4=Frame(toplevel,pady=10)
self.frame4.pack()
Label(self.frame1,text='PASSWORDS', fg='darkblue',
font=('Verdana','14','bold'), height=3).pack()
fonte1=('Verdana','10','bold')
Label(self.frame2,text='Nome: ',
font=fonte1,width=8).pack(side=LEFT)
self.nome=Entry(self.frame2,width=10,
font=fonte1)
self.nome.focus_force() # Para o foco começar neste campo
self.nome.pack(side=LEFT)
Label(self.frame3,text='Senha: ',
font=fonte1,width=8).pack(side=LEFT)
self.senha=Entry(self.frame3,width=10,show='*',
font=fonte1)
self.senha.pack(side=LEFT)
24
height=3,text='AGUARDANDO...')
self.msg.pack()
def conferir(self):
NOME=self.nome.get()
SENHA=self.senha.get()
if NOME == SENHA:
self.msg['text']='ACESSO PERMITIDO'
self.msg['fg']='darkgreen'
else:
self.msg['text']='ACESSO NEGADO'
self.msg['fg']='red'
self.nome.focus_force()
instancia=Tk()
Passwords(instancia)
instancia.mainloop()
'>!&$E
= 3 ? 4$ 8
25
! 3 ! 7!
@ - 8 " 8 &
K 37 ! ! & !
- ! 37 !
$ = &
& *) & ! ! 8 8 S
*) , ! &!
! 8 ! : 1
/ . -
37 30 * 7 * !
1 1 $ 30
* - ! 1 @$ ! K! K
* -
8 0 A+ $ ! ! ! 5! $ 20 GG 37
" - &
< 1 * 0 O
"
- ! . ) .
* "
26
instancia=Tk()
Kanvas(instancia)
instancia.mainloop()
'>!&$E
3 K : " *
) S 30 K
Y 0 !
1 " * * 30
) ! . * &
2? $$ & !&!
! 0
= * & &
27
*
1 % &! * . G:H(-I
G:H J I !
$ / 8 VP ) 1
0 '
>I!
HI+ ! 0 "'
>I! . HI+X '
>I!>I+
;
W
&
28
5? , )!
1 & &
& 3 '
1>!%>+
! '
1@!%@+
!'1E!%E+
'
1!%+
! ! )
a K & " !
37 30 0 , !
& !
2 " - & 0 37 30 !
. " . 30
- $ 4 !
* ! " & '
, +
29
from Tkinter import *
class Linhas:
def __init__(self,raiz):
self.canvas = Canvas(raiz, width=400, height=400,
cursor='watch', bd=5)
self.canvas.pack()
self.frame=Frame(raiz)
self.frame.pack()
self.last=[200,200]
30
self.last=[x,y]
def right(self): # Desenha um segmento para a direita
x, y = self.last[0]+10, self.last[1]
self.canvas.create_line(self.last, x, y, fill='purple')
self.last=[x,y]
instancia=Tk()
Linhas(instancia)
instancia.mainloop()
'>!&$E #;=
0 0 = 1
) & K
' , +
0 " 0 .
1 ; 1
6? $>
;1$ $ H K 1'>
$ :$
6 : 0 " & 2
9 +
& 37 !, $ * 0
8
31
$ 1 * 2 1
self.nome_do_canvas.create_text(x, y)
1 ! 30 5! " '
1!%+ =
1 ) : ! * 1
30 !
: " * '
1!%+ / & X2J
30 1 '
>II!>II+ ! * 1
" '
>II!>II+ 0 < 6
30 )
" & * 7 * *
! 1 30
) 30 , ! 1 "
4 & , "1
& 1 2 " ! 3 *
30 Q !
& & 30
$ ! ) 0 5F ' & S 0+
! < 6
' K + 6=
#B ' & S +
< 1 1 0 .
$ & " + 3
& )
" P) )
32
" " & @II / !
'
>II!>I+ " '
>II!@II.>I+X '
>II!>HI+
!
0 K &
W @II * $
'
>II! $ >I+
! 1
< * *8 3
6 6 + ! ! K
pol=self.canvas.create_polygon
ret=self.canvas.create_rectangle
pol(100, altura-10,
10, altura-145,
10, altura-190,
190, altura-190,
190, altura-145,
33
100, altura-10, fill='white')
ret(15, altura-150, 185, altura-185, fill='black')
pol(20, altura-140,
95, altura-140,
95, altura-30,
20, altura-140, fill='red')
pol(105, altura-30,
105, altura-140,
180, altura-140,
105, altura-30, fill='black')
self.canvas.create_text(100, altura-167.5, text='S P F C',
font=('Arial','26','bold'),
anchor=CENTER, fill='white')
instancia=Tk()
SPFC(instancia)
instancia.mainloop()
'>!&$E
O
" 0 0. 92
" & "! & 0 &
30 0
34
< 1 L
2$F M
: * X < 6'0 " !)
"
0+
! 1 K
: 30 ) 1
/? >
, ! -$
Q + & ! * &
+ / K!
: " ! "
) !
$ : !
)
; . & 8 W 3
: "
& &
: 0 ! 0 37
30 0
:
35
$ 30 ! 1 1
.& " ! & 3
& 1 ! 8 XCI
30 5 ! & 8
.& " ! & " & P)
1 1 5 XHI )
" &
$ 4 !&" 30
6 ! B 6/ $= 25= ' 0+
1 & 3
*
& ! & *
: 6 $ <0 1 *
• 37 "
- * ! 0 .
& W
• "
8 ' ECIbV+
& $ "
< 3 - %
9
W
36
• 5 & ! &
self.canvas.create_oval(25, self.altura-25,
175, self.altura-175,
fill='deepskyblue', outline='darkblue')
fonte=('Comic Sans MS', '14', 'bold')
Label(self.frame, text='Fatia: ',
font=fonte, fg='blue').pack(side=LEFT)
self.porcentagem=Entry(self.frame, fg='red',
font=fonte, width=5)
self.porcentagem.focus_force()
self.porcentagem.pack(side=LEFT)
Label(self.frame, text='%',
font=fonte, fg='blue').pack(side=LEFT)
self.botao=Button(self.frame, text='Desenhar',
command=self.cortar, font=fonte,
fg='darkblue', bg='deepskyblue')
self.botao.pack(side=LEFT)
def cortar(self):
arco=self.canvas.create_arc
fatia=float(self.porcentagem.get())*359.9/100.
arco(25, self.altura-25,
175, self.altura-175,
37
fill='yellow', outline='red',
extent=fatia)
self.porcentagem.focus_force()
instancia=Tk()
Fatias(instancia)
instancia.mainloop()
'>!&$E
< ACc
P) 0 4*
#;=
Y K
! & & ) * " 8
ACc &
V
38
9? -,
!4 $& $@L $ &$ ! 7!
*) ! * =
/
4 . . *) & =
/
Q *) ! 7 &
! =
/ *) 0 1
' L
* , M
+
*) + -
/ =
/ *) -
Z>!
Z@! !Z/ *) =
/ A)! A0! !A 4
K * =
/ ! !L
>M!L
@M!
< K *) ! :
4 $ ! *
*) & !
30 30 -
0 2 8 & ". L
* >M
!* K
*) *
! =
/
39
/ 0 & &! "
* =
/! & 30 V;
0 0 * . 30
+ + =
/' !
+ a ! ) $
& 4 30
! 9
< 1 1 K 9 30
* & 0 !
30 ' ! + " . P) 30 $ Xd
d
* )
# Desenho do relógio-----------------------------
pol=self.canvas.create_polygon
ret=self.canvas.create_rectangle
self.texto=self.canvas.create_text
self.fonte=('BankGothic Md BT','20','bold')
pol(10, self.altura-10,
40, self.altura-90,
160, self.altura-90,
190, self.altura-10, fill='darkblue')
pol(18, self.altura-15,
45, self.altura-85,
40
155, self.altura-85,
182, self.altura-15, fill='dodgerblue')
ret(45, self.altura-35,
90, self.altura-60, fill='darkblue', outline='')
ret(110, self.altura-35,
155, self.altura-60, fill='darkblue', outline='')
self.texto(100, self.altura-50, text=':',
font=self.fonte, fill='yellow')
# Fim do desenho do relógio-----------------------
def mostra(self):
self.canvas.delete('digitos_HORA')
self.canvas.delete('digitos_MIN')
HORA = str( localtime()[3] )
MINUTO = str( localtime()[4] )
self.texto(67.5, self.altura-50, text=HORA, fill='yellow',
font=self.fonte, tag='digitos_HORA')
self.texto(132.5, self.altura-50, text=MINUTO, fill='yellow',
font=self.fonte, tag='digitos_MIN')
instancia=Tk()
Horas(instancia)
instancia.mainloop()
41
'>!&$E
!"B 4$ ' 4$ $ $
$ 6
66= C $ $
D3 E ' !" $ C
6* 4$ 3$ 5 E 4$
3 $ 3
- * 7 0 *)
& 0 = K
& ! 0 < !
30 30 $ X>! . -
" * * !
1 ! *) "
_→`
42
Q K 8 *) VVV$
! - =
/ Z e/! *) ) =
/
30 '
Z! e+ 30 '
Z[ Z! e[ e+
9
99<0
*3 * 1 9; e *)
* 2 *) $ F K
!*
1 1 $- =
//!
*) * *
" L M *) * " *) !
30 1 * " *)
# Desenho da carinha----------------------------------
self.canvas.create_oval(90, 90, 110, 110,
tag='bola', fill='yellow')
self.canvas.create_oval(93, 100, 98, 95,
tag='bola', fill='blue')
self.canvas.create_oval(102, 100, 107, 95,
tag='bola', fill='blue')
self.canvas.create_arc(92, 87, 108, 107, tag='bola',
start=220, extent=100, style=ARC)
# Fim do desenho da carinha----------------------------
43
def esquerda(self, event): self.canvas.move('bola', -10, 0)
def direita(self, event): self.canvas.move('bola', 10, 0)
def cima(self, event): self.canvas.move('bola', 0, -10)
def baixo(self, event): self.canvas.move('bola', 0, 10)
instancia=Tk()
Pacman(instancia)
instancia.mainloop()
'>!&$E
30 -
& : - "
< ! K & K
0 ' + #;= * : 0 3!
"
& K * &
*8 S L
* M ! &
) K !
30 9 * K
* ' +
* *) &
44
K " 1 *8
! 3 -' $ ,
7 $
P) : ,
2? M $&$ &!L
! >
!
) . * 37 30 $ 1 !
*
* ! ) ! !
1 K -
B" K & ) !
5 %-
, G N "1 G N "1 /! & &
"1 ) Y 8 ! 1 ! * 0
1 K ) " *
%-
, G N 8 ! G N 8 / ) 0
& 7 = 4 "
) - $ !
% *8 * : - & & & K )
" 0 $ 1 !
% -
, G $! G( / )
'
- &+ 8 "
$ ! " 8 ) !
* 8 )
K :
45
1 ) 0
& "1 8
& ) 0 ) 0 <
! ) ! * : ,
class Tamanhos_Limite:
def __init__(self,janela):
janela.maxsize(width=300, height=300)
janela.minsize(width=50, height=50)
janela.title('Tamanhos limitados!')
Canvas(janela, width=200, height=100, bg='moccasin').pack()
'>!&$E
46
6 ) 0 ) "
& ! * 0 1 K * 8 9$ !
* 0 1 K ) ! &
"1 ! EII EII
6 * 8 S 3
& ) . Y .
5? $>
$ , &$!
1 ! & 37
, " 20 -& ! * !
* ,! ! ! % -! * - ! ,! ! , !
! ,%* 'K +
! * 'K
L M
V+ & -& '
* + 1 * ,
' +
! ' * ! * +
!
, ,
* * H ! , * H P
" ! , )
6# & &!
K 0 ) 4
&1 B" " L =
, M2 3
*" I
@AA ' #38c602+ :
! - $ K
* ! * "1 '
@AA! @AA! @AA+
!
8 '
I! I! I+
47
0 1 K W "
* K * 37 *" &
* 30 #;= < ! 8
!
" P & " 8 2
! S * 0
raiz.title("Palheta")
self.canvas=Canvas(raiz, width=200, height=200)
self.canvas.pack()
self.frame=Frame(raiz)
self.frame.pack()
Label(self.frame,text='Vermelho: ').pack(side=LEFT)
self.vermelho=Entry(self.frame, width=4)
self.vermelho.focus_force()
self.vermelho.pack(side=LEFT)
Label(self.frame,text='Verde: ').pack(side=LEFT)
self.verde=Entry(self.frame, width=4)
self.verde.pack(side=LEFT)
Label(self.frame,text='Azul: ').pack(side=LEFT)
self.azul=Entry(self.frame, width=4)
self.azul.pack(side=LEFT)
Button(self.frame, text='Mostrar',
command=self.misturar).pack(side=LEFT)
48
def misturar(self):
cor="#%02x%02x%02x" %(int(self.vermelho.get()),
int(self.verde.get()),
int(self.azul.get()))
self.canvas.delete('bola')
self.canvas.create_oval(15, 15, 185, 185,
fill=cor, tag='bola')
self.rgb['text'] = cor
self.vermelho.focus_force()
inst = Tk()
Palheta(inst)
inst.mainloop()
'>!&$E
2 ' +
K . * 0! K GI
J K0L
( $ 4$ 4$ $ $3
5 > 0MM $ 3 6
49
6? $4$& -$@ , ! $ ,
"#$&$4$'
- )
30 1 0
: - 0 4 !
-
, + 5-
/ , + -
/ 5
30 '
) . +
! ) 30 30 0
! , + 5-
/ , + -
/! 0 30
30 L & M
* 30 " 30
! &
2 ) @) 30 " 2)
x_absoluto = C1.winfo_pointerx()
x_origem = C1.winfo_rootx() 0 ! 5+ $ N 5+
0
$ *3 * 30
V2 0! ) *" 1 1 < !
" & & S !
& & 0
30 "
50
self.canvas.pack()
def desenhar(self,event):
x_origem = self.canvas.winfo_rootx()
y_origem = self.canvas.winfo_rooty()
x_abs = self.canvas.winfo_pointerx()
y_abs = self.canvas.winfo_pointery()
try:
P = (x_abs - x_origem, y_abs - y_origem)
self.canvas.create_line(self.ultimo_P, P)
self.ultimo_P = P
except:
self.ultimo_P=(x_abs - x_origem, y_abs - y_origem)
inst = Tk()
AutoCADE(inst)
inst.mainloop()
'>!&$E
51
! *) "
1 & + ! )
0 '
1!%+ =
/ *) 1 '
1!%+
1 1 30 & K
/ K! " 8 *"
+ * & 2 &
8 5! 0 5 8 >I
Q ) * ! 8 ' I!I!I+ /
" 8 K &W 8 "
>I! I! @I ' &1 )
"
+
def __init__(self,raiz):
raiz.title('Palheta Gráfica')
self.canvas=Canvas(raiz, width=200, height=200)
self.canvas.bind('<1>', self.misturar)
self.canvas.pack()
bola = self.canvas.create_oval
bola(20,180,70,130, fill='red', outline='')
bola(75,180,125,130, fill='green', outline='')
bola(130,180,180,130, fill='blue', outline='')
bola(45, 120, 155, 10, fill='white',
outline='', tag='bola')
self.tom=[0,0,0]
def misturar(self,event):
xo=self.canvas.winfo_rootx()
yo=self.canvas.winfo_rooty()
xa=self.canvas.winfo_pointerx()
ya=self.canvas.winfo_pointery()
cor=self.canvas.find_closest(xa-xo, ya-yo)[0]
self.tom[cor-1] = self.tom[cor-1]+10
52
cor="#%02x%02x%02x" %(self.tom[0],
self.tom[1],
self.tom[2])
self.canvas.delete('bola')
self.canvas.create_oval(45, 120, 155, 10, fill=cor,
outline='', tag='bola')
inst = Tk()
Palheta2(inst)
inst.mainloop()
'>!&$E
< ! " P)
@C 8 ! 1
1 0! @AA
; + "
*) *
* 0 ". 0 P
L M * *) " )
L M 30 *) Q
& ! & ' . . +
53
/? -,
!&$ & 1 $4 ,
!
Q #;= - &
( & K ! , 0 " Y
* " K !
, *
- & -
30 "
$ ,' &+ $ ' +
!
- " $ 1 ! 30 ,)6 - $ G) ,G)/
,06 - $ G) ,G0/ & - -> "
& -@ "
,) $ K
* ! $ !
54
2 " X@!
30 -
& ! , ! K -
" &
Q - " ! .
) 3 30 .
37 * 1
F ! 30 " - 0 1 3
$ & K - S
! 30 5 30
55
/ ) - !
+ -
/ " , *
+ -
/
< 4 1 -
6 #;= * !
) . ! - *
8 ,< *
* - 0 * 30
! " ,
; * J -
/!
- H * 2 !
1 ! - * 0
30 * ) . ! "1
& #;=
! &
Label(self.raiz,text='Nome:').grid(row=1, column=1,
sticky=W, pady=3)
Label(self.raiz,text='Senha:').grid(row=2, column=1,
sticky=W, pady=3)
self.msg=Label(self.raiz,text='Descubra a senha!')
self.msg.grid(row=3, column=1, columnspan=2)
self.nome=Entry(self.raiz, width=10)
self.nome.grid(row=1, column=2, sticky=E+W, pady=3)
self.nome.focus_force()
56
self.ok=Button(self.raiz, width=8, command=self.testar,
text='OK')
self.ok.grid(row=4, column=1, padx=2, pady=3)
def testar(self):
if self.nome.get()==self.senha.get()[::-1]:
self.msg['text']='Senha correta!'
else: self.msg['text']='Senha incorreta!'
inst1=Tk()
Griding(inst1)
inst1.mainloop()
'>!&$E
7 8 O$ 4$ 8D ' $
C 6
57
! 3 J : -;
-,$
37 1 8 ! ! "
& ! 0 $ !
30
. * ,f * 37 0
" & (
( *, ,
F" / 8
6 1
* " * !
"
#;=
" P)
, $
FK 1 #;=
! ! 1 *30 & !
! F3 "
* !* * ! & "
) & $ 8
1* 37 F 30
8 0 ) " 8 #;=
9 "
K & $ ! *
8 ! K & 8 30
8
58
&
" * 0 & )L M !
" " 30
" ) K
K ! * & 5
30 " 1* ! P
" 30
30 &
/ & * * 7 " &
*) ) & : ! 8 & ! *
" & 1 *) & $
! & 8
& 8 !
" <0 3
*)
#;= ) &
K 30 K !
! " 4 30 "
" ) ! " 30 )
& *
! 0 ) 0 " 3 5 * .
) & )
" & * 1 K 3
<0 " )
" )
59
) 5 * . ) 1 K
3 9<0 " &
37 2 37 & 3
30 3 " '
* +
* 0
) <0 3
3 ) 3 )
" &" !
*
=>,
4! !>
!7 ! ?
??
P) 9 ! K
* 1 K9 ! ,
! ! * "
" ! " $ & ! 0
1 " - L
& " $ M
F ,5 & L = ?& !" M <- 1 &
' 0 + 5" " 30
8 ! &"
- ! * ! ! *1 ' 0 1
1 &
1 +
! &" 30 * 37
30 - ! &" 37 K
! $ # &.
S 0 30 -
)
" K ! 30
& $ !
DH " & 8 * , "
7 8 ! $%& .
! 30 8
S * !
>>E " $ ) ! * 9
60
P * 0 * 1 - ! &
30 "
* * 4 . ! *
* 1 ) * 1
* 9
; ! $ 6 & J ,!
$&/ ! ! K
0 1 30
30 ! / !
30 1 8 & "
F ! * " S
< ! 2$ 30 &
8 ! & S K 8
S 30 *) B ,!
K ! K * & )
$ ! P$ # & ! , !
! * ! " &
J. Labaki
labaki@feis.unesp.br
http://labaki.tk
61