Criando Interfaces Gráficas com Tkinter
Criando Interfaces Gráficas com Tkinter
PythonofereceváriasopçõesparadesenvolverinterfacesgráficasGUIatravésdemuitas
bibliotecas
1. Tkinter:TkinteréainterfacePythondabibliotecaGUITkquevemcom
Python.Nósvamosestudá-loemdetalhenestecapítulo.
2. wxPython:EstaéumaimplementaçãoemPythonlivreedecódigoabertoPython
dainterfacedeprogramaçãowxWidgets.
3. PyQt:Trata-setambémdeumainterfacePythonparaumabiblioteca
dainterfacegráficaQtpopularmultiplataforma.
4. JPython:JPythonéumaferramentaPythonparaJava,quedáaosscriptsPython
umacessotransparenteàsbibliotecasdeclassesJava.
Existemmuitasoutrasinterfacesgráficasdisponíveis,quevocêpodeencontrarnainternet.
2–AbibliotecagráficaTkinter
Tkinteréabibliotecapadrãodeinterfacegrá[Link],quandoé
combinadocomTkinter,forneceummeiorápidoefácildecriaraplicaçõesgrá[Link]
forneceumapoderosainterfaceorientadaaobjetossimpleseamigável.
AcriaçãodeumaaplicaçãográficausandoTkinteréumatarefabastantefá[Link]ê
Oquevocêprecisafazeréseguirospassosaseguir:
1. ImporteomóduloTkinter.
2. Crieajanelaprincipaldoaplicativográficopormeiodeumainstanciaçãona
classeTk.
3. Entrenaloopdeeventosprincipalparaagircontracadaevento
desencadeadopelousuário.
Exemplo:criaçãodeumasimplesjanelaTkinter
# -*- codificação: utf-8 -*-
1)- Importação da biblioteca tkinter
de tkinter import*
Oqueéexibidoapósaexecução:
Os Widgets Tkinter
AbibliotecaTkinterfornecevárioscontroles,comobotões,rótuloseáreasde
textoutilizadoemumaaplicaçãográ[Link]ãocomumentechamadosdewidgets.
Atualmenteexistemvá[Link]
principaiswidgets,bemcomoumabrevedescrição:
[Link]:lewidgetButtonpermetdecréerdesboutonspourvotreapplication.
[Link]:owidgetCanvapermitedesenharformas,comolinhas,ovais,
polígonoseretângulos,nasuaaplicação.
[Link]:owidgetCheckbuttonpermiteexibirumcertonúmerodeopçõesnaformade
caixasdeseleçã[Link]áriopodeselecionarváriasopçõesaomesmotempo.
[Link]:owidgetEntryéusadoparaexibirumcampodetextodeumaúnicalinhapermitindo
deaceitarosvaloresdeumusuário.
[Link]:lewidgetFrame(cadre)estutiliséentantquewidgetconteneurpourorganiserd’autres
widgets.
6.Rótulo:owidgetRótuloéusadoparafornecerumalegendaoudescriçã[Link]
tambémpodeconterimagens.
[Link]:owidgetListboxéusadoparafornecerumalistadeopçõesaumusuário.
[Link]:owidgetmenubuttonéusadoparaexibirosmenusemsuaaplicação.
[Link]:owidgetMenuéusadoparafornecervárioscomandosaumusuá[Link]
estãocontidasnoMenubutton.
[Link]:owidgetMensageméusadoparaexibircamposdetextomultilinhaspermitindo
deaceitarosvaloresdeumusuário.
[Link]:owidgetRadiobuttonéusadoparaexibirváriasopçõessob
formadebotõesderá[Link]áriosópodeselecionarumaopçãoporvez.
[Link]:owidgetEscalaéusadoparafornecerumwidgetdeslizante.
[Link]:owidgetBarraderolageméusadoparaadicionarumafuncionalidadede
rolagememvárioswidgets,comoáreasdelista.
OwidgetTextoéusadoparaexibirtextoemváriaslinhas.
[Link]:lewidgetToplevelestutilisépourfournirunconteneurdefenêtreséparé.
[Link]:owidgetSpinboxéumavariantedowidgetpadrãoTkinterEntry,quepodeserutilizado
paraselecionarumnúmerofixodevalores.
[Link]:owidgetPanedWindowéumcontêinerquepodeconterqualquernúmero
depersianas,dispostashorizontalmenteouverticalmente.
[Link]:umlabelframeéumsimpleswidgetdecontê[Link]éagir
comoumseparadorouumrecipienteparadisposiçõesdejanelascomplexas.
[Link]:estemóduloéutilizadoparaexibircaixasdemensagememsuasaplicações.
Paratratarimagens,[Link]é
umforksucessordoprojetoPIL(PythonImagingLibrary).Elaéprojetadaparaofereceracesso
rápidoàsinformaçõescontidasemumaimagem,elapossuiumpodermágicoepoderosoparao
tratamentoemanipulaçãodosdiferentesformatosdearquivosdeimagem,comoPNG,JPEG,GIF,
TIFFeBMP…
1.2-InstalaçãodabibliotecaPillow
AbibliotecaPillowséinstaladadeformamuitosimplesutilizandooutilitáriopip:
pip install pillow
2-InserçãodeimagemusandoabibliotecaPillow
AgoraqueabibliotecaPillowestáinstalada,elapodeserutilizadaparainseriremanipular
[Link],bastaimportá-laecriarumobjetoimagema
partirdeumarquivo:
# -*- coding: utf-8 -*-
de PIL import Image, ImageTk
Paraentenderbem,vamostratarissocomumexemplosimples:
[Link]
Coloquemosaimagememumapastachamadaimagens
Vamoscriarumarquivopythonnomesmodiretórioqueapastadeimagense
metemososeguintecódigo:
Exemplodeinserçãodeimagem
# -*- codificação: utf-8 -*-
from tkinterimport *
do PIL import Image, ImageTk
root= Tk()
[Link]("Janela Tkinter")
[Link]("300x200")
Oqueéexibidoapósaexecução:
Redimensionamento da imagem
AbibliotecaPillowtambémpermiteredimensionaraimagemutilizandoométodothumbnail().
especificandoentreparêntesesadimensãoempixels:
# -*- codificação: utf-8 -*-
Criação do objeto imagem
load= [Link]("images/[Link]")
Redimensionar a imagem
[Link]((50,50))
combinaçãodeentradaedemenususpenso,comovocê[Link]êclicaem
Àdireita,vocêveráummenususpensoindicandotodasasescolhaspossíveis.
ParacriarumalistaComboBox,vocêdeveseguirosseguintespassos:
1. ImportarabibliotecaTkintereomódulottk
2. CréerunelistePythoncontenantlesélémentsdelalisteComboBox
3. CriaralistaComboboxusandoomé[Link]()
4. Escolhaoelementoqueéexibidoporpadrão,indicandoseuíndice
Exemplo
# -*- código: utf-8 -*-
# 1) - Importação dos módulos necessários
importar tkinter como tk
de tkinter import ttk
root= [Link]()
[Link]('300x200')
[Link]()
[Link]()
Oqueéexibidoapósaexecução:
2–Associarumaaçãoàlistacombobox(vincularação)
Vocêprovavelmentepercebeuque,sevocêfizeraseleçãodeumelementodalistaCombobox,
nenhumeventoocorre,simplesmenteporquenãoassociamosnenhumaaçãoàlista
[Link]ágrafo,vamosmostrarcomocriarumaaçãorelacionadaaestecombobox.
2.1–Cria-seumaaçãoligada(bindaction)comocomando:
[Link]("<<ComboboxSelected>>", action)
2.2–Criamosométodoação
def ação(evento):
2.3Códigofinaldalistacomboboxcomaçãovinculada
root= [Link]()
[Link]('300x200')
def action(event):
[Link]()
[Link]("<<ComboboxSelected>>", ação)
[Link]()
FileDialogéummódulocomfunçõesdediálogosdeaberturaesalvamento,quepoderáte
ajudaramelhorarsuainterfacegráficaTkinterparaabrirousalvarseusarquivos.
OmóduloFiledialoguepossuitrêsprincipaismétodos:
1. askopenfilename():exibeumacaixadediálogoquesolicitaaaberturadeum
arquivoexistente.
2. asksaveasfilename():exibeumacaixadediálogoquepermitesalvarum
arquivo
3. askdirectory():exibeumacaixadediálogoquesolicitaaaberturadeum
diretório.
2-Ométodoaskopenfilename
Comoexplicamosacima,estemétodoexibeumacaixadediálogoquepedepara
selecioneoarquivoaabrirerecupereoarquivocomseucaminhoemumavariá[Link]
parâmetrosseguintes:
1. initialdir:quepermiteapontarparaumdiretórioinicialassimqueéaberto.
2. title:quipermetdepersonnaliserletitredelaboitededialogue
3. filetypes:quipermetdespécifierlestypesdefichiersàouvrir
Exemplo.métodoaskopenfilename
de tkinter import filedialog
a partir de tkinterimport *
Aoexecutarestecódigo,veremosapareceracaixadediálogoseguintequeapontaparaaraizdo
disqueC:\
Observação
Vocêprovavelmentenotouqueumapequenajanelapop-upaparececomacaixadediálogo!Parase
paraselivrardela,bastausarométodowithdraw():
de tkinter import filedialog
de tkinterimport *
Tk().withdraw()
nome_do_arquivo= [Link](diretorio_inicial= "/",title="Select
Arquivo", tipos_de_arquivo=(("arquivos png","*.png"),("arquivos jpeg","*.jpg"),("todos
arquivos","*.*"))
imprimir(nome_do_arquivo)
3-Ométodoasksaveasfilename
Estemétodoésemelhanteaoanterior,comadiferençadequeelegravaumarquivoemvezde
abri-loeelapossuiexatamenteosmesmosparâmetros.
Exemplo.métodoasksaveasfilename
from tkinter import filedialog
de tkinterimport *
Tk().withdraw()
nome_do_arquivo= [Link](diretorio_inicial= "/",title= "Select
arquivo",tiposDeArquivo= (("png files","*.png"),("jpeg files","*.jpg"),("all
arquivos","*.*"))
imprimir(nome_do_arquivo)
4 - O método askdirectory
Comojámencionamos,estemétodopedeaousuárioparaescolherodiretóriopara
[Link]árioselecionarumdiretório,esteseráarmazenadoemumavariáveldotipo
stringquecontémocaminhoparaodiretórioselecionado.
Exemplo.métodoaskdirectory
de tkinterimport *
de tkinter import filedialog
Tk().withdraw()
myDirectory= [Link]()
imprimir (meuDiretório)
Antesdecomeçaracodificar,vocêdevefazerumdesigndoseusistema.Nóssugerimosa
seguinte:
1. library:representaodiretóriodasbibliotecasdosistema(módulose
classes).Estediretóriocontémumarquivovaziochamado__init__.pyqueindicaa
ointerpretadordePythonquesetratadodiretóriodeummódulo.
2. [Link]:representaabibliotecadosistemaquevaicontertodasas
classesPythonnecessáriasparaofuncionamentodosistema.
3. [Link]:[Link]
fichiernecontientquetrèspeudecode,généralementlesinstancesdesclasses
[Link]
2-Ocó[Link]
2.1Importaçãodabibliotecatkinter
Oeditorquedesejamoscriarmanipulaobjetosgráficos:janelas,botões,rótulos,caixasde
diálogo..Paraisso,precisamosimportarumabibliotecagrá[Link]
Tkinterparaesteprojeto:
from tkinterimport *
importar os
savedFile= {1:""}
NB:
Aterceiralinhanospermitiráarmazenarosobjetosquenãocabememumainstânciade
classe.
de tkinterimport *
importar os
savedFile= {1:""}
classe Vencer:
def __init__(self,master,content):
Janela principal
[Link]= master
# Widget Principal de Texto
[Link]=content
# Criação da janela tkinter
def criar(self):
[Link]= Tk()
[Link]("Editor de Texto")
[Link]("700x550")
Método que adiciona a caixa de texto
def adicionar_texto(self):
[Link]= Text([Link])
[Link](expand=1, fill='both')
# Génération de la fenêtre principale
def gerar(self):
[Link]()
2.3-Adiçãodosmenus
Paraentenderbemométododeadiçãodemenus,porfavorreviseotutorial(página18)sobreosmenus.
Nóspassamosdiretamenteparaocódigoquepermiteadicionarummétodoadd_menu()quepermitejogar
o caso:
def adicionar_menu(self):
# 1 - Criação da barra de menus
menuBar = Menu([Link])
# 2 - Criação do menu Arquivo
menuFichier = Menu(menuBar,tearoff=0)
menuBar.add_cascade(label= "Fichier", menu=menuFichier)
Criação dos sub-menus do menu Arquivo
menuFichier.add_command(label="Nouveau", command=[Link])
menuFichier.add_command(label="Ouvrir", command=[Link])
menuFichier.add_command(label="Enregistrer", command=[Link])
menuFichier.add_command(label="Enregistrer sous",
command=[Link])
menuFichier.add_command(label="Quitter", command= [Link])
[Link](menu= menuBar)
#3 - Criação do Menu Edição
menuEdition= Menu(menuBar,tearoff=0)
menuBar.add_cascade(label= Edição
menuEdition.add_command(label="Annuler")
menuEdition.add_command(label="Rétablir")
menuEdition.add_command(label="Copier", command=[Link])
menuEdition.add_command(label="Couper", command= [Link])
menuEdition.add_command(label="Coller", command=[Link])
#4 - Criação do Menu Ferramentas
menuOutils = Menu(menuBar,tearoff=0)
menuBar.add_cascade(label= "Outils", menu= menuOutils)
menuOutils.add_command(label="Préférences")
Criação do Menu Ajuda
menuAide = Menu(menuBar,tearoff=0)
menuBar.add_cascade(label= "Aide", menu= menuAide)
menuAide.add_command(label="A propos")
2.4–Adiçãodecomandosparaosmenus
Atéagora,osmenuscriadosnãosãofuncionais,poisaindanãooscriamos.
comandos!Portanto,devemosassociaracadamenuumcomando:
command= nom_de_la_commande
Devemosentãocriarumaaçãoparacadapedidoequetenhaomesmonome:
def nom_de_la_commande():
#código da ação aqui
Códigodasaçõesdosmenus
#======================================
Definição das ações dos menus
#======================================
#------------------------------ #
- actions du menu Fichier
#-------------------------------
def quitter(self):
[Link]()
def novo(self):
[Link]("python [Link]")
def fopen(self):
file = [Link]=
[Link](initialdir= "/",title= Selecionar
File",filetypes= (("Text Files","*.txt"),("all files","*.*")))
fp = open(arquivo, "r")
r = [Link]()
[Link](1.0,r)
# Menu Enregistrer sous
def saveAs(self):
# criar diálogo de salvar
fichier=[Link]=[Link](initialdir=
"/",title= "Enregistrer Sous\ ",filetypes= Ficheiro
Texte","*.txt"),("Tous les fichiers","*.*")))
fichier = fichier+ .txt
# Utilisation du dictionnaire pour stocker le fichier
arquivoSalvo[1] = arquivo
f = open(ficheiro, "w")
s = [Link]("1.0", FIM)
[Link](s)
[Link]()
# menu Enregistrer
def salvar(self):
se (arquivoSalvo[1] ==""):
[Link]()
senão:
f = open(savedFile[1], "w")
s = [Link]("1.0", FIM)
[Link](s)
[Link]()
#------------------------------
- ações do menu Edição
#------------------------------
def cópia(self):
[Link].clipboard_clear()
[Link].clipboard_append([Link].selection_get())
def passado(self):
[Link](INSERT, [Link].clipboard_get())
def cortar(self):
[Link]()
[Link]("[Link]","[Link]")
Observação
Asaçõesassociadasaosmenusdevemsercolocadasantesdasfunçõesquedefinemosmenus
2.5-Có[Link]ódigonopastbin)
# -*- codificação: utf-8 -*-
#------------------------------
# Author : Y. DERFOUFI
Professor Agrégé de Matemática & Doutor em Matemática
Informática
# Compagny : CRMEF OUJDA
#-----------------------------
de tkinterimport *
importar os
savedFile= {1:""}
#======================================
# 1 - Classe de la fenêtre pricipale
#======================================
classe Vencer:
def __init__(self,master,content):
Janela principal
[Link]= master
# Widget de Texto Principal
[Link]=content
# Criação da janela tkinter
def criar(self):
[Link]= Tk()
[Link]("Editeur de Texte")
[Link]("700x550")
# Método que adiciona a caixa de texto
def adicionar_texto(self):
[Link] = Text([Link])
[Link](expand=1, fill='both')
# Geração da janela principal
def gerar(self):
[Link]()
#======================================
# 2 - Definição das ações dos menus
#======================================
#------------------------------
# 2.1 - actions du menu Fichier
#-------------------------------
def quitter(self):
[Link]()
def novo(self):
[Link]("python [Link]")
def fopen(self):
file = [Link]=
[Link](initialdir= "/",title= Selecionar
File",filetypes= (("Text Files","*.txt"),("all files","*.*")))
fp = open(arquivo, "r")
r = [Link]()
[Link](1.0,r)
# Menu Enregistrer sous
def saveAs(self):
criar diálogo de salvamento
fichier=[Link]=[Link](initialdir=
/ "Enregistrer Sous\ ",filetypes= Ficheiro
Texte","*.txt"),("Tous les fichiers","*.*")))
fichier = fichier+ .txt
# Utilização do dicionário para armazenar o arquivo
savedFile[1] = fichier
f = open(ficheiro, "w")
s = [Link]("1.0", FIM)
[Link](s)
[Link]()
# menu Enregistrer
def salvar(self):
se(arquivoSalvo[1] ==""):
[Link]()
senão:
f = open(savedFile[1], "w")
s = [Link]("1.0", FIM)
[Link](s)
[Link]()
#------------------------------
2.2 - ações do menu Edição
#------------------------------
def cópia(self):
[Link].clipboard_clear()
[Link].clipboard_append([Link].selection_get())
def passado(self):
[Link](INSERT, [Link].clipboard_get())
def cortar(self):
[Link]()
[Link]("[Link]", "[Link]")
#======================================
2 - Métodos de adição de menus
#======================================
def adicionar_menu(self):
# 1 - Criação da barra de menus
menuBar = Menu([Link])
# 2 - Criação do menu Arquivo
menuFichier = Menu(menuBar,tearoff=0)
menuBar.add_cascade(label= Ficheiro
Criação dos submenus do menu Arquivo
menuFichier.add_command(label="Nouveau", command=[Link])
menuFichier.add_command(label="Ouvrir", command=[Link])
menuFichier.add_command(label="Enregistrer", command=[Link])
menuFichier.add_command(label="Enregistrer sous",
command=[Link]
menuFichier.add_command(label="Quitter", command= [Link])
[Link](menu= menuBar)
#3 - Criação do Menu Edição
menuEdition= Menu(menuBar,tearoff=0)
menuBar.add_cascade(label= Edição
menuEdition.add_command(label="Annuler")
menuEdition.add_command(label="Rétablir")
menuEdition.add_command(label="Copier", command=[Link])
menuEdition.add_command(label="Couper", command= [Link])
menuEdition.add_command(label="Coller", command=[Link])
#4 - Criação do Menu Ferramentas
menuOutils = Menu(menuBar,tearoff=0)
menuBar.add_cascade(label= Outils
menuOutils.add_command(label="Préférences")
Criação do Menu Ajuda
menuAide = Menu(menuBar,tearoff=0)
menuBar.add_cascade(label= Ajudar
menuAide.add_command(label="A propos")
3- Code du fichier principal [Link] (Códigonopastbin)
# -*- codificação: utf-8 -*-
# Importação das bibliotecas necessárias
do tkinterimport *
de tkinter import filedialog
# Chamada dos métodos que criam o objeto janela com todos os seus componentes
[Link]()
root.adicionar_texto()
root.adicionar_menu()
[Link]()
4–Visãodoeditor
Sevocêcodificoubemseusistemaetudoestáfuncionando,aquiestáumapréviadoseupequenoeditordetexto:
1– Introduction
DesenvolvidoporRobinDunncomHarriPasanen,wxPythonéimplementadocomoummódulo
d'[Link]ãoéoutracoisasenãoumwrapper:bibliotecacujafunçãoprincipalé
dechamareinterrogarosmódulosefunçõesdeoutrabiblioteca:wxWidgets(escritoemC++),
umacaixadeferramentasdeinterfacegráficamultiplataformapopular.
ComotodososwxWidgets,owxPythontambémé[Link]
oficial[Link]
sistemaoperacionalestãodisponí[Link]ém
serinstaladodiretamenteviaoutilitáriopip.
OsprincipaismódulosdaAPIwxPythonincluemummó[Link]écompostopor
classewxObject,[Link]ódulodecontrolecontém
todososwidgetsusadosnodesenvolvimentodeaplicaçõesdeinterfacegrá[Link]
exemplo,[Link],[Link],[Link](controledetextomodificável),etc.
AAPIwxPythonpossuiummóduloGDI(InterfacedeDispositivoGráfico).Éumconjuntodeclasses
[Link],cor,pincel,[Link]
[Link],recomendamosquevocêvejaa
documentaçãooficialnawikidabiblioteca:[Link]
2– InstalaçãodowxPythoneprimeiroprograma
2.1–InstalaçãodabibliotecawxPython
ParainstalarabibliotecawxPython,[Link]áriodecomando
cmdedigitar:
pip install-U wxPython
2.2– Primeiroprograma‘OláMundo!’ comwxPython
Agoravamosvercomocriarnossaprimeirajanela'HelloWorld!'comwxPython.
Paraisso,devemos:
1. ImportarabibliotecawxPython:usandoocomandoimportwx
2. CriarumobjetoaplicativousandoométodoApp():app=[Link]()
3. Criarumamoldura(frame):frame=[Link]()
4. VisualizaroframeusandoométodoShow():[Link]()
5. ImplementaroaplicativocomométodoMainloop():[Link]()
Importação da biblioteca wxPython.
importar wx
Visualizar o quadro.
[Link]()
[Link]()
Oqueéexibidoapósaexecução:
2.3Propriedadesdeumajanelaframe
UmajanelaemolduradadabibliotecawxPythonpossuinumerosaspropriedades:título,SetSize,
BackgroundColour…
[Link]ão400×200defundoverde
# Importação da biblioteca wxPython.
import wx
Propriedades da janela
[Link]= Olá Mundo!
[Link]= verde
[Link](0,0,400,200)
Visualizar o quadro.
[Link]()
[Link]()
3– OswidgetswxPython
wxPythonpossuiumaamplagamadediversoswidgets,incluindobotões,caixasdeseleção,
cursoresezonasdelista.
1. [Link]ão
2. [Link]
3. [Link]ático
4. [Link]
5. [Link]
6. [Link]
7. [Link]
8. [Link]
9. [Link]ão de Rádio
10. [Link]
11. [Link]
12. [Link]
13. [Link]
3.1–[Link]
[Link]ã[Link],devemos:
1. CriarumframeprincipalcomométodoFrame()
2. CriarumpainelcomométodoPanel()
3. Adicionarobotãoaopainel
3.1.1–Criaçãodeumbotãosimples
[Link]ãosimples
# -*- codificação: utf-8 -*-
import wx
app= [Link]()
frame= [Link](None, title='Fenêtre avec bouton')
[Link](0,0,350,200)
Criar um Painel
panel= [Link](frame)
[Link]()
[Link]()
Oqueexibeumbotãonocantosuperioresquerdodajanela:
Maspodemosfacilmentemudaraposiçãoeasdimensõesdobotãocomaajudada
métodoDefinirTamanho():
botã[Link](50,50,200,30)
3.1.2–Associarumaaçãoaumbotãodecomando
Paraassociarumeventodeaçãoaumbotãodecomando,bastadefiniroevento.
umamétodoPythoneligá-loaobotãousandoométodobind():
[Link](wx.EVT_BUTTON, ação)
Exemplo:botãodefecharumajanela.
# -*- codificação: utf-8 -*-
importar wx
def action(event):
[Link]()
app= [Link]()
frame= [Link](None, title='Janela com botão')
[Link](0,0,350,200)
Criar um Painel
panel= [Link](frame)
[Link]()
[Link]()
Aoexecutarocódigoacima,obtemosaseguintejanelacomumbotãodefechamento:
Eagora,aoclicarnobotão,ajanelasefechaautomaticamente.
3.2OwidgetStaticText(rótulo)
ParacriarumrótuloemumajanelawxPython,usamosowidgetStaticText:
Exemplo
import wx
app= [Link]()
window= [Link](None, title= "wxPython Frame", tamanho= (300,200))
adicionar painél
panel= [Link](window)
[Link]="white"
4– miniappwxPython
Agoravamoscriarumpequenoaplicativoquemostraaousuárioumapequenajanela.
demandantdesaisirsonnometdeluiafficherunmessagedebienvenueaprèsavoircliquésurlebouton
devalidação.
# -*- codificação: utf-8 -*-
import wx
def action(event):
s = [Link]()
[Link]("Bienvenue : " + s)
app= [Link]()
frame= [Link](None, title='Janela com botão')
[Link](0,0,550,300)
[Link]()
[Link]()
Oqueéexibidoapósaexecuçãodocódigo:
1 - A respeito do PyQt5
PyQtestéumabibliotecaconsideradacomoumaligaçãodalinguagemPythoncomacaixadeferramentasGUI
kitdeferramentasQt,quepodeserinstaladorapidamentecomoutilitáriopipetimplementadocomoummódulo
[Link]é[Link]ádisponível
emcondiçõessemelhantesàsversõesQtanterioreseissosignificaumavariedadededelícias,dasquais
LicençaPúblicaGeralGNU(GPL)ealicençacomercial,masnãoaLicençaPúblicaGeralMenorGNU
LicençaPública(LGPL).PyQtsuportaMicrosoftWindows,bemcomováriasversõesdoUNIX.
incluindoLinuxeMacOS(ouDarwin).PyQtimplementacercade440classesemaisde6.000
funçõesemétodos.
2– InstalaçãodoPyQt5eprimeiroprograma
2.1–InstalaçãodoPyQt5
LabibliothèquePyQt5,peutêtreinstalléfacilementvial’utilitairepip:
pip3 install pyqt5
DepoisdeinstalarabibliotecaPyQt5,devemosinstalarasferramentasauxiliaresusando
opromptdecomando:
pip3 instalar pyqt5-tools
2.2–PremièrefenêtregraphiquePyQt5
PourcréerunefenêtregraphiqueenPyQt5,ondois:
1. Importaromódulodosistema:sys
2. Importeaclassequegeraaaplicação:QApplicationsdopacote
[Link]
3. [Link]
4. Criarumaplicativousandoométodoinstance()daclasse
QApplication
5. CriarumajanelacomométodoQWidget():fen=QWidget()
6. Visualizarajanelausandoométodoshow():[Link]()
7. Exécuterl’applicationàl’aidedelaméthodeexec_():app.exec_()
CódigodaprimeirajanelagráficacomPyQt5:
#-*- coding: utf-8 -*-
# importações necessárias para a realização de uma interface gráfica
importar sistema
de [Link] importar QApplication, QWidget
Oqueexibeumabelajanelanaexecução: