SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
!!"" ## ##
$ % &' ( ) '* & + )
UNIVERSIDADE ESTADUAL PAULISTA
“JÚLIO DE MESQUITA FILHO”
2
!"#$
% $&'"#$
! ()$ * ' $ ()$
! " # $%& '& (( %& )* +! "
'& (( * , ,+ " $%&
'& ((--- %& .* *+
/ * 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
3
+ &,-
! ., /
> * " ?
@ , 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
4
! .,
, $%&
" & " 0
1 ' =/5 1 " +!
- 2 30 *
! * 30
*" $%& J - )" ,
& $%& )"
" , ' * 37 5 1 30
+
2? '4 ! &$ $ $7$-!@'>A ,$
< ! 8
, ! 30
" '#;= ! " +
* 0 ! ! 1 1 ! ; * )
#;=! ) - 3 K !
! &
B" * 'L M+! 0
1 8
= ! * 0 L2 M! & " ) '
& L & NO M+
* 0 $ & NO ) 1 * 0 L2 M!
" K * 0
P ) 30 , ! =/5
& K F '
5
- + >
L$ * M
& Q ' " *
- +! & < ! 0
" K * 30 - # $
5? ->! .
2 * & , ! 4
* ! -
#;= < " 0
! : ,! * 1
& %! "
#;=P ) 1
from Tkinter import *
class Janela:
def __init__(self, instancia_de_Tk):
pass
raiz=Tk()
Janela(raiz)
raiz.mainloop()
1
To bind: ligar. Também nos referiremos ao processo de binding por “fazer binding”, “ligar”, “relacionar”,
“atribuir”, etc.
6
4 & K : &
: % K #;= *
2 ! 1 !
" #;=! !
* 0 ! & " 30
! ) * L M!
* 0 X & * 0 LF & 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.
7
& * 1 '
+! . & " 0
* / #;= )
& ! "& !
& L M' L M+ ' ' & +
J 1
30 . -
"
"1 & ) . !
* 7 & ! * 8 ! P ) & "
30 - !
30 " ,
! < ! *
* ! *
2 &
- ! 1 "! 0 " 8 " 9< -
& $ ! 1 ! #;= 8
* 30
8
5? -$ C, $D,&1
1 "
- ( $ < 1 ! * ' ) .
+ * 0 ' & )+ 0
1 self.fr1 ! - !
* : , * * K30
- 8
1 - * + +, - .
$ / & 37
30 8 - $
1 * 0
from Tkinter import *
class Janela:
def __init__(self,toplevel):
self.fr1 = Frame(toplevel)
self.fr1.pack()
self.botao = Button(self.fr1, text='Oi!', background='green')
self.botao.pack()
raiz=Tk()
Janela(raiz)
raiz.mainloop()
'>!&$E
9
) ! * )
$%& 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 & -
F 3 ; 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
10
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()
self.botao2 = Button(self.fr1,bg='red', font=('Times','16'))
self.botao2['text']='Tchau!'
self.botao2['fg']='yellow'
self.botao2['width']=12
self.botao2.pack()
raiz=Tk()
Janela(raiz)
raiz.mainloop()
'>!&$E
P ) ) &
* 7 * * 0 ! P & >@ "
'* +! * 0 & ! < - 6 & >C * 0
& & >@ !
1 ! 30 L M
11
! 3 37
" * 7 " ! & 2 "*
& ) 37 ! 0
6? $ ,-,$ ! &$D,&1 !
* 1 30
* 7 Q 0 *
) !
= ) 1 -
, K ! 5 F
' +! 6=#B ' +! $' + ' * 1 +!
-
- ! 3
1 - " ! *
, <0 0 * & *
- ! 0 L 3 M " Q *
0 3 0 V
0 $ $ !
, * * 7 1 ! * 0 L 9M
12
! * 0 L & 9M ! !
* 1 * 0 < -
9 "
) ' * 0 1 K ! 1 + K !
" ! 1 / !
S 30 ! * 7 37
#;=
from Tkinter import *
class Packing:
def __init__(self,instancia_Tk):
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()
13
'>!&$E
! R ,' X $+ *
! 0 0 & * 0
$! 0 " 1 <
,' X $+! * 0 !
7 / * 7 0
! K 30 ,' X5 F + Y * 0
L@M S * 0 LEM 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
14
! ,&,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 !, ! +
15
from Tkinter import *
class Janela:
def __init__(self,toplevel):
self.frame=Frame(toplevel)
self.frame.pack()
self.texto=Label(self.frame, text='Clique para ficar amarelo')
self.texto['width']=26
self.texto['height']=3
self.texto.pack()
self.botaoverde=Button(self.frame,text='Clique')
self.botaoverde['background']='green'
self.botaoverde.bind("<Button-1>",self.muda_cor)
self.botaoverde.pack()
def muda_cor(self, event):
# Muda a cor do botao!
if self.botaoverde['bg']=='green':
self.botaoverde['bg']='yellow'
self.texto['text']='Clique para ficar verde'
else:
self.botaoverde['bg']='green'
self.texto['text']='Clique para ficar amarelo'
raiz=Tk()
Janela(raiz)
raiz.mainloop()
'>!&$E
16
; * 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
* - F 3 1
"<ButtonRelease-X>" * 0 Z
'Z >!@ E! * 0
+ "<Motion>"
* - ! "<Leave>" -
17
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>"
18
; "<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
19
# -*- 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)
20
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
21
30 #;=' 1 * 1 * 0
* 0 + 30 5 * .
30 9
6? $44! &@,&,1
K & * : $ );
& ! 0 " * 0 ) 1
* 0 )" & & =
* 0 - 0
, ! * 0
& ! "<ButtonRelease>"
! ! " !
' K! L M * 0
+! 0 & "
& ! * / !
&" * *
- 30 - !
Widget(master, ...., command = self.event_handler)
< ! * 30
30 - ! 1 "
self.nome_do_widget['command']=self.event_handler
; 8 30
K *) ' + 0
&
1 30
&
22
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()
23
'>!&$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
24
* - ' " * 0
+
from Tkinter import *
class Passwords:
def __init__(self,toplevel):
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)
self.confere=Button(self.frame4, font=fonte1, text='Conferir',
bg='pink', command=self.conferir)
self.confere.pack()
self.msg=Label(self.frame4,font=fonte1,
25
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
26
! 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"
- ! . ) .
* "
from Tkinter import *
class Kanvas:
def __init__(self,raiz):
self.canvas1 = Canvas(raiz, width=100, height=200,
cursor='X_cursor', bd=5,
bg='dodgerblue')
self.canvas1.pack(side=LEFT)
self.canvas2 = Canvas(raiz, width=100, height=200,
cursor='dot', bd=5,
bg='purple')
self.canvas2.pack(side=LEFT)
27
instancia=Tk()
Kanvas(instancia)
instancia.mainloop()
'>!&$E
3 K : " *
) S 30 K
Y 0 !
1 " * * 30
) ! . * &
2? $$ & !&!
! 0
= * & &
28
*
1 % & ! * . G:H(-I
G:H J I !
$ / 8 VP ) 1
0 '>I!
HI+ ! 0 "'>I! . HI+X '>I!>I+
;
W
&
29
5? ,)!
1 & &
self.nome_do_canvas.create_line(x1, y1, ...., xn, yn)
& 3 '1>!%>+! '1@!%@+!'1E!%E+
'1 ! % +
! ! )
create_line(x1, y1, x2, y2, x3, y3, x4, y4, ......)
create_line((x1, y1), (x2, y2), (x3, y3), (x4, y4), ......)
create_line((x1, y1, x2, y2), (x3, y3, x4, y4), ......)!
* = * &
)" 0 )! & &
$>X '1>!%>+ $@X '1@!%@+!* K + -$> $@/ 2 !
8 " 3 + -$>_I` $>_>` $@_I` $@_>`/
a K & " !
37 30 0 , !
& !
< 1 !&" & 3 ; &
>I & 30 " * 7 <
* : ,! 6 ! " 4
30 & .
2 " - & 0 37 30 !
. " . 30
- $ 4 !
* ! " & ', +
30
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]
configs={'fg':'darkblue', 'bg':'ghostwhite', 'relief':GROOVE,
'width':11,'font':('Verdana','8','bold')}
self.b1=Button(self.frame, configs,
text='Esquerda', command=self.left)
self.b1.pack(side=LEFT)
self.b2=Button(self.frame, configs,
text='Para cima', command=self.up)
self.b2.pack(side=LEFT)
self.b3=Button(self.frame, configs,
text='Para baixo', command=self.down)
self.b3.pack(side=LEFT)
self.b4=Button(self.frame, configs,
text='Direita', command=self.right)
self.b4.pack(side=LEFT)
def left(self): # Desenha um segmento para a esquerda
x, y = self.last[0]-10, self.last[1]
self.canvas.create_line(self.last, x, y, fill='red')
self.last=[x,y]
def up(self): # Desenha um segmento para cima
x, y = self.last[0], self.last[1]-10
self.canvas.create_line(self.last, x, y, fill='yellow')
self.last=[x,y]
def down(self): # Desenha um segmento para baixo
x, y = self.last[0], self.last[1]+10
self.canvas.create_line(self.last, x, y, fill='blue')
31
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'>$ :$
/ & 8 & & 3
& + & "
3 & "
8 & 8 K & .
30 2 &
1 ! 37 $ ,
6 : 0 " & 2
9 +
& 37 !, $ * 0
8
32
$ 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 5 F ' & S 0 +! < 6
' K + 6=#B ' & S +
< 1 1 0 .
$ & " + 3
& )
" P ) )
33
" " & @II / !
'>II!>I+ " '>II!@II.>I+X '>II!>HI+!
0 K &
W @II * $
'>II! $ >I+! 1
< * * 8 3
6 6 + ! ! K
from Tkinter import *
class SPFC:
def __init__(self,raiz):
self.canvas=Canvas(raiz, width=200, height=200, bg='dodgerblue')
self.canvas.pack()
altura = 200 # Altura do canvas
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,
34
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
35
< 1 L2$F M
: * X < 6'0 " !)"
0 +! 1 K
: 30 ) 1
/? >, ! -$
Q + & ! * &
+ / K!
: " ! "
) !
$ : !
)
; . & 8 W 3
: "
& &
: 0 ! 0 37
30 0
:
36
$ 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 - %
9W
37
• 5 & ! &
# -*- coding: cp1252 -*-
from Tkinter import *
class Fatias:
def __init__(self,raiz):
self.canvas=Canvas(raiz, width=200, height=200)
self.canvas.pack()
self.frame=Frame(raiz)
self.frame.pack()
self.altura = 200 # Altura do canvas
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,
38
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
39
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
self.nome_do_canvas.create_oval(coord., opções, tag = "bola1")
*) *
! =/
40
/ 0 & & ! "
* =/! & 30 V;
0 0 * . 30
+ + =/ ' !
+ a ! ) $
& 4 30
! 9
< 1 1 K 9 30
* & 0 !
30 ' ! + " . P ) 30 $ X dd
* )
# -*- coding: cp1252 -*-
from Tkinter import *
from time import localtime
class Horas:
def __init__(self,raiz):
self.canvas=Canvas(raiz, width=200, height=100)
self.canvas.pack()
self.frame=Frame(raiz)
self.frame.pack()
self.altura = 100 # Altura do canvas
# 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,
41
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-----------------------
self.mostrar=Button(self.frame, text='Que horas são?',
command=self.mostra,
font=('Comic Sans MS', '11', 'bold'),
fg='darkblue', bg='deepskyblue')
self.mostrar.pack(side=LEFT)
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()
42
'>!&$E
Q & ! " &
! 0 1 * $
! ' + 1 S &
/ ! K *) !
& " . ! " 8 ! :
1 & ' #;=+
!"B4$ ' 4$ $ $
$ 666= C $ $
D3 E ' !" $ C
6* 4$ 3$ 5 E 4$
3 $ 3
- * 7 0 *)
& 0 = K
& ! 0 < !
30 30 $ X>! . -
" * * !
1 ! *) "
_→`
43
Q K 8 *) VVV$
! - =/ Z e/! *) ) =/
30 'Z! e+ 30 'Z[ Z! e[ e+
999<0
* 3 * 1 9; e *)
* 2 *) $ F K
! *
1 1 $ - =//!
*) * *
" L M *) * " *) !
30 1 * " *)
from Tkinter import *
class Pacman:
def __init__(self, raiz):
self.canvas=Canvas(raiz, height=200, width=200,
takefocus=1, bg='deepskyblue',
highlightthickness=0)
self.canvas.bind('<Left>', self.esquerda)
self.canvas.bind('<Right>', self.direita)
self.canvas.bind('<Up>', self.cima)
self.canvas.bind('<Down>', self.baixo)
self.canvas.focus_force()
self.canvas.pack()
# 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----------------------------
44
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
* ' +
* *) &
45
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 :
46
1 ) 0
& "1 8
& ) 0 ) 0 <
! ) ! * : ,
# -*- coding: cp1252 -*-
from Tkinter import *
class Nao_Redimensiona:
def __init__(self,janela):
janela.resizable(width=False, height=False)
janela.title('Não redimensiona!')
Canvas(janela, width=200, height=100, bg='moccasin').pack()
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()
inst1, inst2 = Tk(), Tk()
Nao_Redimensiona(inst1)
Tamanhos_Limite(inst2)
inst1.mainloop()
inst2.mainloop()
'>!&$E
47
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 MV+ & -& '* + 1 * ,
' +! ' * ! * +!
, ,
* * H ! , * H P
" ! , )
6# & & !
K 0 ) 4
& 1 B" " L =
, M 2 3
"#%02x%02x%02x" % (intens_vermelho, intens_verde, intens_azul)
*" I
@AA ' #38c602+ :
! - $ K
* ! * "1 '@AA! @AA! @AA+!
8 'I! I! I+
48
0 1 K W "
* K * 37 *" &
* 30 #;= < ! 8
!
" P & " 8 2
! S * 0
from Tkinter import *
class Palheta:
def __init__(self,raiz):
raiz.title("Palheta")
self.canvas=Canvas(raiz, width=200, height=200)
self.canvas.pack()
self.frame=Frame(raiz)
self.frame.pack()
self.canvas.create_oval(15, 15, 185, 185,
fill='white', tag='bola')
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)
self.rgb=Label(self.frame, text='', width=8,
font=('Verdana','10','bold'))
self.rgb.pack()
49
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 G IJ K0L
( $ 4$ 4$ $ $3
5 >0MM $ 3 6
50
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 "
from Tkinter import *
class AutoCADE:
def __init__(self, raiz):
raiz.title('AutoCADÊ')
self.canvas=Canvas(raiz, width=300, height=300,
bg='#beff8c', cursor='hand2')
self.canvas.bind('<1>',self.desenhar)
51
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
52
! *) "
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 )"
+
# -*- coding: cp1252 -*-
from Tkinter import *
class Palheta2:
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
53
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
& ! & ' . . +
54
/? -,!&$ & 1 $4 ,!
Q #;= - &
( & K ! , 0 " Y
* " K !
, *
- & -
30 "
$ , ' & + $ ' +!
- " $ 1 ! 30 ,)6 - $ G) ,G)/
,06 - $ G) ,G0/ & - -> "
& -@ "
- & " & -@ $
! " 30 ,16 - $ G0 ,G0/ -
-E " & @! @
,) $ K
* ! $ !
55
2 " X@!
30 -
& ! , ! K -
" &
Q - " ! .
) 3 30 .
37 * 1
F ! 30 " - 0 1 3
$ & K - S
! 30 5 30
56
/ ) - !
+ -/ " , *
+ -/
< 4 1 -
6 #;= * !
) . ! - *
8 , < *
* - 0 * 30
! " ,
; * J -/!
- H * 2 !
1 ! - * 0
30 * ) . ! "1
& #;=! &
from Tkinter import *
class Griding:
def __init__(self,raiz):
self.raiz = raiz
self.raiz.title('Tchau!')
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()
self.senha=Entry(self.raiz, width=5, fg='darkgray',
show='l',font=('Wingdings','10'))
self.senha.grid(row=2,column=2, sticky=E+W, pady=3)
57
self.ok=Button(self.raiz, width=8, command=self.testar,
text='OK')
self.ok.grid(row=4, column=1, padx=2, pady=3)
self.close=Button(self.raiz, width=8, command=self.fechar,
text='Fechar')
self.close.grid(row=4, column=2, 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!'
def fechar(self): self.raiz.destroy()
inst1=Tk()
Griding(inst1)
inst1.mainloop()
'>!&$E
7 8 O$ 4$ 8 D ' $
C 6
58
! 3 J : -;-,$
37 1 8 ! ! "
& ! 0 $ !
30
. * ,f * 37 0
" & (( * , ,
F" / 8
6 1
* " * !
"
#;=
" P )
, $
& 1 $ & # " " *
*" =
8 *
FK 1 #;=
! ! 1 *30 & !
! F 3 "
* ! * * ! & "
) & $ 8
1 * 37 F 30
8 0 ) " 8 #;=9 "
K & $ ! *
8 ! K & 8 30
8
59
&
" * 0 & ) L M !
6 * & " " 0 &
* )
" " 30
" ) K
K ! * & 5
30 " 1 * ! P
" 30
30 &
/ & * * 7 " &
*) ) & : ! 8 & ! *
" & 1 *) & $
! & 8
& 8 !
" <0 3
*)
#;= ) &
K30 K !
! " 4 30 "
" ) ! " 30 )
& *
! 0 ) 0 " 3 5 * .
) & )
" & * 1 K 3
<0 " )
" )
60
) 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
61
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
&$-'4 $ $& &, ,@';&$>,7 4 H& & B' 4! ,&$ $ -M&,$ &$!' $ ?

Weitere ähnliche Inhalte

Was ist angesagt?

โปรแกรมที่มากับโปรแกรม Microsoft Windows 7
โปรแกรมที่มากับโปรแกรม Microsoft Windows 7โปรแกรมที่มากับโปรแกรม Microsoft Windows 7
โปรแกรมที่มากับโปรแกรม Microsoft Windows 7เทวัญ ภูพานทอง
 
Un juego creado en php
Un juego creado en phpUn juego creado en php
Un juego creado en phpErwin Lobo
 
Plan territorial de Empleo de La Gomera 2008-2013
Plan territorial de Empleo de La Gomera 2008-2013Plan territorial de Empleo de La Gomera 2008-2013
Plan territorial de Empleo de La Gomera 2008-2013Servicio Canario de Empleo
 
Dicionário ilustrado das religiões georg schwikart
Dicionário ilustrado das religiões   georg schwikartDicionário ilustrado das religiões   georg schwikart
Dicionário ilustrado das religiões georg schwikartLuiza Dayana
 
Profil penyandang masalah sosial di indonesia
Profil penyandang masalah sosial di indonesiaProfil penyandang masalah sosial di indonesia
Profil penyandang masalah sosial di indonesiaDewi Kartika
 
Thuốc kháng siêu vi
Thuốc kháng siêu viThuốc kháng siêu vi
Thuốc kháng siêu viHai Trieu
 
&& Reglas de atracción
&& Reglas de atracción&& Reglas de atracción
&& Reglas de atracciónPatricia Gomez
 
Need Some Home Cooking? Chef Bruno Is in the House (The Suburban)
Need Some Home Cooking? Chef Bruno Is in the House (The Suburban)Need Some Home Cooking? Chef Bruno Is in the House (The Suburban)
Need Some Home Cooking? Chef Bruno Is in the House (The Suburban)Jacqueline Durett
 
South Amboy Receives $725 Million in Grants (The Suburban)
South Amboy Receives $725 Million in Grants (The Suburban)South Amboy Receives $725 Million in Grants (The Suburban)
South Amboy Receives $725 Million in Grants (The Suburban)Jacqueline Durett
 
Doola dampatulu-01-04
Doola dampatulu-01-04Doola dampatulu-01-04
Doola dampatulu-01-04venkatesha9
 
U.S. Exchanges Clearing &amp; Settlement
U.S. Exchanges Clearing &amp; SettlementU.S. Exchanges Clearing &amp; Settlement
U.S. Exchanges Clearing &amp; SettlementWill Mechem
 
South Amboy to Use Sayreville Fire Services (The Suburban)
South Amboy to Use Sayreville Fire Services (The Suburban)South Amboy to Use Sayreville Fire Services (The Suburban)
South Amboy to Use Sayreville Fire Services (The Suburban)Jacqueline Durett
 

Was ist angesagt? (20)

โปรแกรมที่มากับโปรแกรม Microsoft Windows 7
โปรแกรมที่มากับโปรแกรม Microsoft Windows 7โปรแกรมที่มากับโปรแกรม Microsoft Windows 7
โปรแกรมที่มากับโปรแกรม Microsoft Windows 7
 
Miniray.php
Miniray.phpMiniray.php
Miniray.php
 
The 4th International ACME Workshop
The 4th International ACME WorkshopThe 4th International ACME Workshop
The 4th International ACME Workshop
 
Un juego creado en php
Un juego creado en phpUn juego creado en php
Un juego creado en php
 
Plan territorial de Empleo de La Gomera 2008-2013
Plan territorial de Empleo de La Gomera 2008-2013Plan territorial de Empleo de La Gomera 2008-2013
Plan territorial de Empleo de La Gomera 2008-2013
 
Plan territorial de Empleo Tenerife 2008-2013
Plan territorial de Empleo Tenerife 2008-2013Plan territorial de Empleo Tenerife 2008-2013
Plan territorial de Empleo Tenerife 2008-2013
 
Dicionário ilustrado das religiões georg schwikart
Dicionário ilustrado das religiões   georg schwikartDicionário ilustrado das religiões   georg schwikart
Dicionário ilustrado das religiões georg schwikart
 
Profil penyandang masalah sosial di indonesia
Profil penyandang masalah sosial di indonesiaProfil penyandang masalah sosial di indonesia
Profil penyandang masalah sosial di indonesia
 
Thuốc kháng siêu vi
Thuốc kháng siêu viThuốc kháng siêu vi
Thuốc kháng siêu vi
 
Sis quiz
Sis quizSis quiz
Sis quiz
 
With enter
With enterWith enter
With enter
 
áêïëïõèéá áãéáó ìáñéíçó (äéïñè)
áêïëïõèéá áãéáó ìáñéíçó (äéïñè)áêïëïõèéá áãéáó ìáñéíçó (äéïñè)
áêïëïõèéá áãéáó ìáñéíçó (äéïñè)
 
&& Reglas de atracción
&& Reglas de atracción&& Reglas de atracción
&& Reglas de atracción
 
Need Some Home Cooking? Chef Bruno Is in the House (The Suburban)
Need Some Home Cooking? Chef Bruno Is in the House (The Suburban)Need Some Home Cooking? Chef Bruno Is in the House (The Suburban)
Need Some Home Cooking? Chef Bruno Is in the House (The Suburban)
 
South Amboy Receives $725 Million in Grants (The Suburban)
South Amboy Receives $725 Million in Grants (The Suburban)South Amboy Receives $725 Million in Grants (The Suburban)
South Amboy Receives $725 Million in Grants (The Suburban)
 
Doola dampatulu-01-04
Doola dampatulu-01-04Doola dampatulu-01-04
Doola dampatulu-01-04
 
Minishell
MinishellMinishell
Minishell
 
U.S. Exchanges Clearing &amp; Settlement
U.S. Exchanges Clearing &amp; SettlementU.S. Exchanges Clearing &amp; Settlement
U.S. Exchanges Clearing &amp; Settlement
 
Dondoo dondae
Dondoo dondaeDondoo dondae
Dondoo dondae
 
South Amboy to Use Sayreville Fire Services (The Suburban)
South Amboy to Use Sayreville Fire Services (The Suburban)South Amboy to Use Sayreville Fire Services (The Suburban)
South Amboy to Use Sayreville Fire Services (The Suburban)
 

Andere mochten auch

デザイナーがTkinterで遊んでみました。
デザイナーがTkinterで遊んでみました。デザイナーがTkinterで遊んでみました。
デザイナーがTkinterで遊んでみました。Chachamaru
 
Manual clips
Manual clipsManual clips
Manual clipsworkhome
 
The Synergy of Drupal Hooks/APIs (Custom Module Development with ChartJS)
The Synergy of Drupal Hooks/APIs (Custom Module Development with ChartJS)The Synergy of Drupal Hooks/APIs (Custom Module Development with ChartJS)
The Synergy of Drupal Hooks/APIs (Custom Module Development with ChartJS)Ranel Padon
 
Creating masterpieces with raphael
Creating masterpieces with raphaelCreating masterpieces with raphael
Creating masterpieces with raphaelPippi Labradoodle
 
Python Programming - III. Controlling the Flow
Python Programming - III. Controlling the FlowPython Programming - III. Controlling the Flow
Python Programming - III. Controlling the FlowRanel Padon
 
Python Programming - VII. Customizing Classes and Operator Overloading
Python Programming - VII. Customizing Classes and Operator OverloadingPython Programming - VII. Customizing Classes and Operator Overloading
Python Programming - VII. Customizing Classes and Operator OverloadingRanel Padon
 
Python Programming - IX. On Randomness
Python Programming - IX. On RandomnessPython Programming - IX. On Randomness
Python Programming - IX. On RandomnessRanel Padon
 
Python Programming - XI. String Manipulation and Regular Expressions
Python Programming - XI. String Manipulation and Regular ExpressionsPython Programming - XI. String Manipulation and Regular Expressions
Python Programming - XI. String Manipulation and Regular ExpressionsRanel Padon
 
Python Programming - VIII. Inheritance and Polymorphism
Python Programming - VIII. Inheritance and PolymorphismPython Programming - VIII. Inheritance and Polymorphism
Python Programming - VIII. Inheritance and PolymorphismRanel Padon
 
Batch Scripting with Drupal (Featuring the EntityFieldQuery API)
Batch Scripting with Drupal (Featuring the EntityFieldQuery API)Batch Scripting with Drupal (Featuring the EntityFieldQuery API)
Batch Scripting with Drupal (Featuring the EntityFieldQuery API)Ranel Padon
 
Power and Elegance - Leaflet + jQuery
Power and Elegance - Leaflet + jQueryPower and Elegance - Leaflet + jQuery
Power and Elegance - Leaflet + jQueryRanel Padon
 
Python Programming - V. Sequences (List and Tuples) and Dictionaries
Python Programming - V. Sequences (List and Tuples) and DictionariesPython Programming - V. Sequences (List and Tuples) and Dictionaries
Python Programming - V. Sequences (List and Tuples) and DictionariesRanel Padon
 
Python Programming - VI. Classes and Objects
Python Programming - VI. Classes and ObjectsPython Programming - VI. Classes and Objects
Python Programming - VI. Classes and ObjectsRanel Padon
 
Switchable Map APIs with Drupal
Switchable Map APIs with DrupalSwitchable Map APIs with Drupal
Switchable Map APIs with DrupalRanel Padon
 
Python Programming - XII. File Processing
Python Programming - XII. File ProcessingPython Programming - XII. File Processing
Python Programming - XII. File ProcessingRanel Padon
 

Andere mochten auch (20)

Import python
Import pythonImport python
Import python
 
Mba
MbaMba
Mba
 
デザイナーがTkinterで遊んでみました。
デザイナーがTkinterで遊んでみました。デザイナーがTkinterで遊んでみました。
デザイナーがTkinterで遊んでみました。
 
Manual clips
Manual clipsManual clips
Manual clips
 
The Synergy of Drupal Hooks/APIs (Custom Module Development with ChartJS)
The Synergy of Drupal Hooks/APIs (Custom Module Development with ChartJS)The Synergy of Drupal Hooks/APIs (Custom Module Development with ChartJS)
The Synergy of Drupal Hooks/APIs (Custom Module Development with ChartJS)
 
Python IDE Roundup
Python IDE RoundupPython IDE Roundup
Python IDE Roundup
 
Creating masterpieces with raphael
Creating masterpieces with raphaelCreating masterpieces with raphael
Creating masterpieces with raphael
 
Python Programming - III. Controlling the Flow
Python Programming - III. Controlling the FlowPython Programming - III. Controlling the Flow
Python Programming - III. Controlling the Flow
 
Python Programming - VII. Customizing Classes and Operator Overloading
Python Programming - VII. Customizing Classes and Operator OverloadingPython Programming - VII. Customizing Classes and Operator Overloading
Python Programming - VII. Customizing Classes and Operator Overloading
 
Py S60
Py S60Py S60
Py S60
 
Python Programming - IX. On Randomness
Python Programming - IX. On RandomnessPython Programming - IX. On Randomness
Python Programming - IX. On Randomness
 
Python Programming - XI. String Manipulation and Regular Expressions
Python Programming - XI. String Manipulation and Regular ExpressionsPython Programming - XI. String Manipulation and Regular Expressions
Python Programming - XI. String Manipulation and Regular Expressions
 
Python Programming - VIII. Inheritance and Polymorphism
Python Programming - VIII. Inheritance and PolymorphismPython Programming - VIII. Inheritance and Polymorphism
Python Programming - VIII. Inheritance and Polymorphism
 
Batch Scripting with Drupal (Featuring the EntityFieldQuery API)
Batch Scripting with Drupal (Featuring the EntityFieldQuery API)Batch Scripting with Drupal (Featuring the EntityFieldQuery API)
Batch Scripting with Drupal (Featuring the EntityFieldQuery API)
 
Introducción a dr racket
Introducción a dr racketIntroducción a dr racket
Introducción a dr racket
 
Power and Elegance - Leaflet + jQuery
Power and Elegance - Leaflet + jQueryPower and Elegance - Leaflet + jQuery
Power and Elegance - Leaflet + jQuery
 
Python Programming - V. Sequences (List and Tuples) and Dictionaries
Python Programming - V. Sequences (List and Tuples) and DictionariesPython Programming - V. Sequences (List and Tuples) and Dictionaries
Python Programming - V. Sequences (List and Tuples) and Dictionaries
 
Python Programming - VI. Classes and Objects
Python Programming - VI. Classes and ObjectsPython Programming - VI. Classes and Objects
Python Programming - VI. Classes and Objects
 
Switchable Map APIs with Drupal
Switchable Map APIs with DrupalSwitchable Map APIs with Drupal
Switchable Map APIs with Drupal
 
Python Programming - XII. File Processing
Python Programming - XII. File ProcessingPython Programming - XII. File Processing
Python Programming - XII. File Processing
 

Introdução a python módulo c

  • 1. !!"" ## ## $ % &' ( ) '* & + ) UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
  • 2. 2 !"#$ % $&'"#$ ! ()$ * ' $ ()$ ! " # $%& '& (( %& )* +! " '& (( * , ,+ " $%& '& ((--- %& .* *+ / * 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
  • 3. 3 + &,- ! ., / > * " ? @ , 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
  • 4. 4 ! ., , $%& " & " 0 1 ' =/5 1 " +! - 2 30 * ! * 30 *" $%& J - )" , & $%& )" " , ' * 37 5 1 30 + 2? '4 ! &$ $ $7$-!@'>A ,$ < ! 8 , ! 30 " '#;= ! " + * 0 ! ! 1 1 ! ; * ) #;=! ) - 3 K ! ! & B" * 'L M+! 0 1 8 = ! * 0 L2 M! & " ) ' & L & NO M+ * 0 $ & NO ) 1 * 0 L2 M! " K * 0 P ) 30 , ! =/5 & K F '
  • 5. 5 - + > L$ * M & Q ' " * - +! & < ! 0 " K * 30 - # $ 5? ->! . 2 * & , ! 4 * ! - #;= < " 0 ! : ,! * 1 & %! " #;=P ) 1 from Tkinter import * class Janela: def __init__(self, instancia_de_Tk): pass raiz=Tk() Janela(raiz) raiz.mainloop() 1 To bind: ligar. Também nos referiremos ao processo de binding por “fazer binding”, “ligar”, “relacionar”, “atribuir”, etc.
  • 6. 6 4 & K : & : % K #;= * 2 ! 1 ! " #;=! ! * 0 ! & " 30 ! ) * L M! * 0 X & * 0 LF & 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.
  • 7. 7 & * 1 ' +! . & " 0 * / #;= ) & ! "& ! & L M' L M+ ' ' & + J 1 30 . - " "1 & ) . ! * 7 & ! * 8 ! P ) & " 30 - ! 30 " , ! < ! * * ! * 2 & - ! 1 "! 0 " 8 " 9< - & $ ! 1 ! #;= 8 * 30
  • 8. 8 5? -$ C, $D,&1 1 " - ( $ < 1 ! * ' ) . + * 0 ' & )+ 0 1 self.fr1 ! - ! * : , * * K30 - 8 1 - * + +, - . $ / & 37 30 8 - $ 1 * 0 from Tkinter import * class Janela: def __init__(self,toplevel): self.fr1 = Frame(toplevel) self.fr1.pack() self.botao = Button(self.fr1, text='Oi!', background='green') self.botao.pack() raiz=Tk() Janela(raiz) raiz.mainloop() '>!&$E
  • 9. 9 ) ! * ) $%& 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 & - F 3 ; 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
  • 10. 10 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() self.botao2 = Button(self.fr1,bg='red', font=('Times','16')) self.botao2['text']='Tchau!' self.botao2['fg']='yellow' self.botao2['width']=12 self.botao2.pack() raiz=Tk() Janela(raiz) raiz.mainloop() '>!&$E P ) ) & * 7 * * 0 ! P & >@ " '* +! * 0 & ! < - 6 & >C * 0 & & >@ ! 1 ! 30 L M
  • 11. 11 ! 3 37 " * 7 " ! & 2 "* & ) 37 ! 0 6? $ ,-,$ ! &$D,&1 ! * 1 30 * 7 Q 0 * ) ! = ) 1 - , K ! 5 F ' +! 6=#B ' +! $' + ' * 1 +! - - ! 3 1 - " ! * , <0 0 * & * - ! 0 L 3 M " Q * 0 3 0 V 0 $ $ ! , * * 7 1 ! * 0 L 9M
  • 12. 12 ! * 0 L & 9M ! ! * 1 * 0 < - 9 " ) ' * 0 1 K ! 1 + K ! " ! 1 / ! S 30 ! * 7 37 #;= from Tkinter import * class Packing: def __init__(self,instancia_Tk): 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()
  • 13. 13 '>!&$E ! R ,' X $+ * ! 0 0 & * 0 $! 0 " 1 < ,' X $+! * 0 ! 7 / * 7 0 ! K 30 ,' X5 F + Y * 0 L@M S * 0 LEM 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
  • 14. 14 ! ,&,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 !, ! +
  • 15. 15 from Tkinter import * class Janela: def __init__(self,toplevel): self.frame=Frame(toplevel) self.frame.pack() self.texto=Label(self.frame, text='Clique para ficar amarelo') self.texto['width']=26 self.texto['height']=3 self.texto.pack() self.botaoverde=Button(self.frame,text='Clique') self.botaoverde['background']='green' self.botaoverde.bind("<Button-1>",self.muda_cor) self.botaoverde.pack() def muda_cor(self, event): # Muda a cor do botao! if self.botaoverde['bg']=='green': self.botaoverde['bg']='yellow' self.texto['text']='Clique para ficar verde' else: self.botaoverde['bg']='green' self.texto['text']='Clique para ficar amarelo' raiz=Tk() Janela(raiz) raiz.mainloop() '>!&$E
  • 16. 16 ; * 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 * - F 3 1 "<ButtonRelease-X>" * 0 Z 'Z >!@ E! * 0 + "<Motion>" * - ! "<Leave>" -
  • 17. 17 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>"
  • 18. 18 ; "<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
  • 19. 19 # -*- 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)
  • 20. 20 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
  • 21. 21 30 #;=' 1 * 1 * 0 * 0 + 30 5 * . 30 9 6? $44! &@,&,1 K & * : $ ); & ! 0 " * 0 ) 1 * 0 )" & & = * 0 - 0 , ! * 0 & ! "<ButtonRelease>" ! ! " ! ' K! L M * 0 +! 0 & " & ! * / ! &" * * - 30 - ! Widget(master, ...., command = self.event_handler) < ! * 30 30 - ! 1 " self.nome_do_widget['command']=self.event_handler ; 8 30 K *) ' + 0 & 1 30 &
  • 22. 22 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()
  • 23. 23 '>!&$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
  • 24. 24 * - ' " * 0 + from Tkinter import * class Passwords: def __init__(self,toplevel): 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) self.confere=Button(self.frame4, font=fonte1, text='Conferir', bg='pink', command=self.conferir) self.confere.pack() self.msg=Label(self.frame4,font=fonte1,
  • 25. 25 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
  • 26. 26 ! 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" - ! . ) . * " from Tkinter import * class Kanvas: def __init__(self,raiz): self.canvas1 = Canvas(raiz, width=100, height=200, cursor='X_cursor', bd=5, bg='dodgerblue') self.canvas1.pack(side=LEFT) self.canvas2 = Canvas(raiz, width=100, height=200, cursor='dot', bd=5, bg='purple') self.canvas2.pack(side=LEFT)
  • 27. 27 instancia=Tk() Kanvas(instancia) instancia.mainloop() '>!&$E 3 K : " * ) S 30 K Y 0 ! 1 " * * 30 ) ! . * & 2? $$ & !&! ! 0 = * & &
  • 28. 28 * 1 % & ! * . G:H(-I G:H J I ! $ / 8 VP ) 1 0 '>I! HI+ ! 0 "'>I! . HI+X '>I!>I+ ; W &
  • 29. 29 5? ,)! 1 & & self.nome_do_canvas.create_line(x1, y1, ...., xn, yn) & 3 '1>!%>+! '1@!%@+!'1E!%E+ '1 ! % + ! ! ) create_line(x1, y1, x2, y2, x3, y3, x4, y4, ......) create_line((x1, y1), (x2, y2), (x3, y3), (x4, y4), ......) create_line((x1, y1, x2, y2), (x3, y3, x4, y4), ......)! * = * & )" 0 )! & & $>X '1>!%>+ $@X '1@!%@+!* K + -$> $@/ 2 ! 8 " 3 + -$>_I` $>_>` $@_I` $@_>`/ a K & " ! 37 30 0 , ! & ! < 1 !&" & 3 ; & >I & 30 " * 7 < * : ,! 6 ! " 4 30 & . 2 " - & 0 37 30 ! . " . 30 - $ 4 ! * ! " & ', +
  • 30. 30 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] configs={'fg':'darkblue', 'bg':'ghostwhite', 'relief':GROOVE, 'width':11,'font':('Verdana','8','bold')} self.b1=Button(self.frame, configs, text='Esquerda', command=self.left) self.b1.pack(side=LEFT) self.b2=Button(self.frame, configs, text='Para cima', command=self.up) self.b2.pack(side=LEFT) self.b3=Button(self.frame, configs, text='Para baixo', command=self.down) self.b3.pack(side=LEFT) self.b4=Button(self.frame, configs, text='Direita', command=self.right) self.b4.pack(side=LEFT) def left(self): # Desenha um segmento para a esquerda x, y = self.last[0]-10, self.last[1] self.canvas.create_line(self.last, x, y, fill='red') self.last=[x,y] def up(self): # Desenha um segmento para cima x, y = self.last[0], self.last[1]-10 self.canvas.create_line(self.last, x, y, fill='yellow') self.last=[x,y] def down(self): # Desenha um segmento para baixo x, y = self.last[0], self.last[1]+10 self.canvas.create_line(self.last, x, y, fill='blue')
  • 31. 31 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'>$ :$ / & 8 & & 3 & + & " 3 & " 8 & 8 K & . 30 2 & 1 ! 37 $ , 6 : 0 " & 2 9 + & 37 !, $ * 0 8
  • 32. 32 $ 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 5 F ' & S 0 +! < 6 ' K + 6=#B ' & S + < 1 1 0 . $ & " + 3 & ) " P ) )
  • 33. 33 " " & @II / ! '>II!>I+ " '>II!@II.>I+X '>II!>HI+! 0 K & W @II * $ '>II! $ >I+! 1 < * * 8 3 6 6 + ! ! K from Tkinter import * class SPFC: def __init__(self,raiz): self.canvas=Canvas(raiz, width=200, height=200, bg='dodgerblue') self.canvas.pack() altura = 200 # Altura do canvas 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,
  • 34. 34 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
  • 35. 35 < 1 L2$F M : * X < 6'0 " !)" 0 +! 1 K : 30 ) 1 /? >, ! -$ Q + & ! * & + / K! : " ! " ) ! $ : ! ) ; . & 8 W 3 : " & & : 0 ! 0 37 30 0 :
  • 36. 36 $ 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 - % 9W
  • 37. 37 • 5 & ! & # -*- coding: cp1252 -*- from Tkinter import * class Fatias: def __init__(self,raiz): self.canvas=Canvas(raiz, width=200, height=200) self.canvas.pack() self.frame=Frame(raiz) self.frame.pack() self.altura = 200 # Altura do canvas 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,
  • 39. 39 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 self.nome_do_canvas.create_oval(coord., opções, tag = "bola1") *) * ! =/
  • 40. 40 / 0 & & ! " * =/! & 30 V; 0 0 * . 30 + + =/ ' ! + a ! ) $ & 4 30 ! 9 < 1 1 K 9 30 * & 0 ! 30 ' ! + " . P ) 30 $ X dd * ) # -*- coding: cp1252 -*- from Tkinter import * from time import localtime class Horas: def __init__(self,raiz): self.canvas=Canvas(raiz, width=200, height=100) self.canvas.pack() self.frame=Frame(raiz) self.frame.pack() self.altura = 100 # Altura do canvas # 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,
  • 41. 41 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----------------------- self.mostrar=Button(self.frame, text='Que horas são?', command=self.mostra, font=('Comic Sans MS', '11', 'bold'), fg='darkblue', bg='deepskyblue') self.mostrar.pack(side=LEFT) 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()
  • 42. 42 '>!&$E Q & ! " & ! 0 1 * $ ! ' + 1 S & / ! K *) ! & " . ! " 8 ! : 1 & ' #;=+ !"B4$ ' 4$ $ $ $ 666= C $ $ D3 E ' !" $ C 6* 4$ 3$ 5 E 4$ 3 $ 3 - * 7 0 *) & 0 = K & ! 0 < ! 30 30 $ X>! . - " * * ! 1 ! *) " _→`
  • 43. 43 Q K 8 *) VVV$ ! - =/ Z e/! *) ) =/ 30 'Z! e+ 30 'Z[ Z! e[ e+ 999<0 * 3 * 1 9; e *) * 2 *) $ F K ! * 1 1 $ - =//! *) * * " L M *) * " *) ! 30 1 * " *) from Tkinter import * class Pacman: def __init__(self, raiz): self.canvas=Canvas(raiz, height=200, width=200, takefocus=1, bg='deepskyblue', highlightthickness=0) self.canvas.bind('<Left>', self.esquerda) self.canvas.bind('<Right>', self.direita) self.canvas.bind('<Up>', self.cima) self.canvas.bind('<Down>', self.baixo) self.canvas.focus_force() self.canvas.pack() # 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----------------------------
  • 44. 44 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 * ' + * *) &
  • 45. 45 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 :
  • 46. 46 1 ) 0 & "1 8 & ) 0 ) 0 < ! ) ! * : , # -*- coding: cp1252 -*- from Tkinter import * class Nao_Redimensiona: def __init__(self,janela): janela.resizable(width=False, height=False) janela.title('Não redimensiona!') Canvas(janela, width=200, height=100, bg='moccasin').pack() 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() inst1, inst2 = Tk(), Tk() Nao_Redimensiona(inst1) Tamanhos_Limite(inst2) inst1.mainloop() inst2.mainloop() '>!&$E
  • 47. 47 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 MV+ & -& '* + 1 * , ' +! ' * ! * +! , , * * H ! , * H P " ! , ) 6# & & ! K 0 ) 4 & 1 B" " L = , M 2 3 "#%02x%02x%02x" % (intens_vermelho, intens_verde, intens_azul) *" I @AA ' #38c602+ : ! - $ K * ! * "1 '@AA! @AA! @AA+! 8 'I! I! I+
  • 48. 48 0 1 K W " * K * 37 *" & * 30 #;= < ! 8 ! " P & " 8 2 ! S * 0 from Tkinter import * class Palheta: def __init__(self,raiz): raiz.title("Palheta") self.canvas=Canvas(raiz, width=200, height=200) self.canvas.pack() self.frame=Frame(raiz) self.frame.pack() self.canvas.create_oval(15, 15, 185, 185, fill='white', tag='bola') 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) self.rgb=Label(self.frame, text='', width=8, font=('Verdana','10','bold')) self.rgb.pack()
  • 49. 49 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 G IJ K0L ( $ 4$ 4$ $ $3 5 >0MM $ 3 6
  • 50. 50 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 " from Tkinter import * class AutoCADE: def __init__(self, raiz): raiz.title('AutoCADÊ') self.canvas=Canvas(raiz, width=300, height=300, bg='#beff8c', cursor='hand2') self.canvas.bind('<1>',self.desenhar)
  • 51. 51 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
  • 52. 52 ! *) " 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 )" + # -*- coding: cp1252 -*- from Tkinter import * class Palheta2: 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
  • 53. 53 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 & ! & ' . . +
  • 54. 54 /? -,!&$ & 1 $4 ,! Q #;= - & ( & K ! , 0 " Y * " K ! , * - & - 30 " $ , ' & + $ ' +! - " $ 1 ! 30 ,)6 - $ G) ,G)/ ,06 - $ G) ,G0/ & - -> " & -@ " - & " & -@ $ ! " 30 ,16 - $ G0 ,G0/ - -E " & @! @ ,) $ K * ! $ !
  • 55. 55 2 " X@! 30 - & ! , ! K - " & Q - " ! . ) 3 30 . 37 * 1 F ! 30 " - 0 1 3 $ & K - S ! 30 5 30
  • 56. 56 / ) - ! + -/ " , * + -/ < 4 1 - 6 #;= * ! ) . ! - * 8 , < * * - 0 * 30 ! " , ; * J -/! - H * 2 ! 1 ! - * 0 30 * ) . ! "1 & #;=! & from Tkinter import * class Griding: def __init__(self,raiz): self.raiz = raiz self.raiz.title('Tchau!') 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() self.senha=Entry(self.raiz, width=5, fg='darkgray', show='l',font=('Wingdings','10')) self.senha.grid(row=2,column=2, sticky=E+W, pady=3)
  • 57. 57 self.ok=Button(self.raiz, width=8, command=self.testar, text='OK') self.ok.grid(row=4, column=1, padx=2, pady=3) self.close=Button(self.raiz, width=8, command=self.fechar, text='Fechar') self.close.grid(row=4, column=2, 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!' def fechar(self): self.raiz.destroy() inst1=Tk() Griding(inst1) inst1.mainloop() '>!&$E 7 8 O$ 4$ 8 D ' $ C 6
  • 58. 58 ! 3 J : -;-,$ 37 1 8 ! ! " & ! 0 $ ! 30 . * ,f * 37 0 " & (( * , , F" / 8 6 1 * " * ! " #;= " P ) , $ & 1 $ & # " " * *" = 8 * FK 1 #;= ! ! 1 *30 & ! ! F 3 " * ! * * ! & " ) & $ 8 1 * 37 F 30 8 0 ) " 8 #;=9 " K & $ ! * 8 ! K & 8 30 8
  • 59. 59 & " * 0 & ) L M ! 6 * & " " 0 & * ) " " 30 " ) K K ! * & 5 30 " 1 * ! P " 30 30 & / & * * 7 " & *) ) & : ! 8 & ! * " & 1 *) & $ ! & 8 & 8 ! " <0 3 *) #;= ) & K30 K ! ! " 4 30 " " ) ! " 30 ) & * ! 0 ) 0 " 3 5 * . ) & ) " & * 1 K 3 <0 " ) " )
  • 60. 60 ) 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
  • 61. 61 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 &$-'4 $ $& &, ,@';&$>,7 4 H& & B' 4! ,&$ $ -M&,$ &$!' $ ?