Instalação e Uso do Tkinter em Python
Instalação e Uso do Tkinter em Python
(./page-cours-python-debutant-documentacao)
(./pagina-curso-python-avancado-documentacao-
francesa)
ouordja
tou-c
seja
g-oun(./
t-rgespacu
m
osdl-enção-
fra
caensue)
-ac
t ntehe
r- tá
eb
ud-rasee-y-p
gpbreprpadna/(-.eu
p
python)
Instalar Tkinter
Tkinter está instalado por padrão, se não estiver, execute o seguinte comando:
Em python 3:
Python 2, python 3
Os módulos não são os mesmos dependendo da sua versão do python. Se a seguinte mensagem aparecer
durante a execução do seu script:
Python 2 Python 3
Tkinter → tkinter
Tix → [Link]
ttk → [Link]
tkMessageBox → [Link]
tkColorChooser→ tkinter.seletor_de_cores
tkFileDialog→ [Link]
tkCommonDialog→ [Link]
tkSimpleDialog→ [Link]
tkFont → [Link]
Tkdnd → [Link]
ScrolledText → [Link]
Olá mundo
Aqui está o código do seu primeiro hello world
# codificação: utf-8
de tkinter import*
fenetre = Tk()
[Link]()
Os widgets Tkinter
Para criar um software gráfico, você deve adicionar elementos gráficos em uma janela que
chamamos de widget. Este widget pode ser tanto uma lista suspensa quanto texto.
Os botões
Les boutons permettent de proposer une action à l'utilisateur. Dans l'exemple ci-dessous, on lui
proponho fechar a janela.
botão de saída
bouton=Button(fenetre, text="Fermer", command=[Link])
[Link]()
Os rótulos
Os rótulos são espaços destinados a escrever texto. Os rótulos costumam servir para descrever um
widget como um input
# label
label = Label(fenetre, text="Texte par défaut", bg="yellow")
[Link]()
Entrada / entrada
entrada
value = StringVar()
[Link]("texto padrão")
entree = Entry(fenetre, textvariable=string, width=30)
[Link]()
Caixa de seleção
As checkboxes oferecem ao usuário a opção de marcar uma alternativa.
caixa de seleção
bouton = Checkbutton(fenetre, text="Nouveau?")
[Link]()
Botões de rádio
Os botões de opção são caixas de seleção que estão em um grupo e, nesse grupo, apenas um.
um elemento pode ser selecionado.
# radiobutton
value = StringVar()
bouton1 = Radiobutton(fenetre, text="Oui", variable=value, value=1)
bouton2 = Radiobutton(fenetre, text="Non", variable=value, value=2)
bouton3 = Radiobutton(fenetre, text="Peu être", variable=value, value=3)
[Link]()
[Link]()
[Link]()
Les listes
As listas permitem recuperar um valor selecionado pelo usuário.
# lista
lista = Listbox(janela)
[Link](1, "Python")
[Link](2, "PHP")
[Link](3, "jQuery")
[Link](4, "CSS")
[Link](5, "Javascript")
[Link]()
Tela
Uma tela (tela em português) é um espaço onde você pode desenhar ou escrever isso
o que você quer:
# canvas
canvas = Canvas(fenetre, width=150, height=120, background='yellow')
ligne1 = canvas.create_line(75, 0, 75, 120)
linha2 = canvas.create_line(0, 60, 150, 60)
txt = canvas.create_text(75, 60, text="Cible", font="Arial 16 italic", fill="blue")
[Link]()
Se você quiser mudar as coordenadas de um elemento criado no canvas, você pode usar o
méthodecoords.
[Link](élément)
printdir(Canvas())
ou visite a página seguinte infohost ([Link]
[Link]
Escala
O widget scale permite recuperar um valor numérico através de um scroll
value = DoubleVar()
scale = Scale(fenetre, variable=value)
[Link]()
Molduras
Os quadros são recipientes que permitem separar elementos.
fenetre['bg']='white'
# frame 1
Frame1 = Frame(fenetre, borderwidth=2, relief=GROOVE)
[Link](side=ESQUERDA, padx=30, pady=30)
quadro 2
Frame2 = Frame(fenetre, largura_da_borda=2, alívio=GROOVE)
[Link](side=ESQUERDA, padx=10, pady=10)
quadro 3 no quadro 2
Frame3 = Frame(Frame2, bg="branco", borderwidth=2, relief=GROOVE)
[Link](side=DIREITA, padx=5, pady=5)
Adição de rótulos
Label(Frame1, text="Quadro 1").pack(padx=10, pady=10)
Label(Frame2, text="Quadro 2").pack(padx=10, pady=10)
Label(Frame3, text="Frame 3",bg="white").pack(padx=10, pady=10)
Janela Paned
Lepanedwindowest um contêiner que pode conter quantos painéis forem necessários dispostos
horizontalmente ou verticalmente.
p = JanelaDividida(fenetre, orient=HORIZONTAL)
[Link](side=TOP, expand=Y, fill=BOTH, pady=2, padx=2)
[Link](Label(p, text='Volet 1', background='blue', anchor=CENTER))
[Link](Label(p, text='Volet 2', background='branco', anchor=CENTER) )
[Link](Label(p, text='Volet 3', background='red', anchor=CENTER) )
[Link]()
Caixa de Spin
Laspinbox oferece ao usuário a opção de escolher um número
Quadro de Rótulos
O labelframe é uma moldura com um rótulo.
Os alertas
Para poder usar os alertas do seu sistema operacional, você pode importar o módulo tkMessageBox (Python
2).
de tkMessageBox import*
Para python 3:
do [Link] import *
Exemplo de utilização:
defcallback():
ifaskyesno('Titre 1', 'Êtes-vous sûr de vouloir faire ça?'):
showwarning('Titre 2', 'Tant pis...')
senão:
showinfo('Titre 3', 'Vous avez peur!')
showerror("Titre 4", "Aha")
Button(text='Action', command=callback).pack()
showinfo()
mostraraviso()
mostrarErro()
fazerPergunta()
askokcancel()
perguntarSimNao()
perguntarrepetircancelar()
Barra de menu
É possível criar uma barra de menu como esta:
defalert():
showinfo("alerte", "Bravo!")
menubar = Menu(fenetre)
[Link](menu=menubar)
imprimir dir(Botão())
Colocar widgets
É possível posicionar os widgets usando o parâmetro lateral:
side=TOP alto
side=LEFT : gauche
side=BOTTOM : bas
side=RIGHT : droite
Exemple:
Outro exemplo:
As unidades de dimensões
Se você indicar uma dimensão através de um número inteiro, a unidade utilizada será 'pixels'. No entanto,
possível mudar a unidade:
eu : polegadas
m : milímetro
c : centímetro
As opções de dimensões
altura Altura do widget.
largura Largura do widget.
padx, pady Espaço adicional ao redor do widget. X para horizontal e V para vertical.
borderwidth Tamanho da borda.
highlightthickness: Largeur du rectangle lorsque le widget a le focus.
largura da borda tridimensional ao redor do widget selecionado.
wraplength Número máximo de linhas para os widgets em modo "quebra de texto".
O cursor
Você pode mudar a aparência do seu cursor:
O relevo
Você pode mudar o relevo em seus elementos:
APARTAMENTO
LEVANTADO
AFUNDADO
GROOVE
SERRETA
forligneinrange(5):
forcolonneinrange(5):
Botão(fenetre, text='L%s-C%s' % (linha, coluna), largura_borda=1).grid(linha=linha, coluna=colo
photo = PhotoImage(file="ma_photo.png")
defrecupere():
showinfo("Alerte", [Link]())
value = StringVar()
[Link]("Valeur")
entree = Entry(fenetre, textvariable=value, width=30)
[Link]()
do [Link] import*
A função askopenfilename retorna o caminho do arquivo que você escolheu com o nome de
este aqui.
/home/olivier/minha_foto.png
Recuperar um arquivo de texto e exibi-lo
filename = askopenfilename(title="Ouvrir votre document",filetypes=[('txt files','.txt'),('all files'
fichero = open(arquivo, "r")
content = [Link]()
[Link]()
Os eventos
Você pode recuperar as ações dos usuários através dos eventos.
Para cada widget, você pode vincular um evento, por exemplo, dizer quando
o usuário pressiona tal tecla, fazer isso.
defclavier(event):
touche = [Link]
print(touche)
Para remover a ligação do evento, você pode usar os métodos unbind ou unbind_all.
Aqui está um exemplo onde podemos mover um quadrado com as teclas de direção:
# função chamada quando o usuário pressiona uma tecla
defclavier(event):
coordenadasglobais
touche = [Link]
iftouche == "Up":
coords = (coords[0], coords[1] - 10)
eliftouche == "Down":
coords = (coords[0], coords[1] + 10)
eliftouche == "Right":
coords = (coords[0] + 10, coords[1])
eliftouche == "Left":
coords = (coords[0] -10, coords[1])
mudança de coordenadas para o retângulo
[Link](retângulo, coords[0], coords[1], coords[0]+25, coords[1]+25)
criação do canvas
canvas = Canvas(fenetre, width=250, height=250, bg="ivory")
# coordonnées initiales
coords = (0, 0)
# criação do retângulo
rectangle = canvas.create_rectangle(0,0,25,25,fill="violet")
adicionando a ligação nas teclas do teclado
canvas.focus_set()
[Link]("<Tecla>", clavier)
# création du canvas
[Link]()
fsincere ([Link]
([Link] - [Link]
([Link] - desenvolver
([Link] - sebsauvage
([Link]
([Link]
ie=UTF8&camp=1642&creative=6746&creativeASIN=2746071711&linkCode=as2&tag=pythondjango-
21&linkId=bdf2387af4f5ebddbf6a49ab0369c185)
([Link]
ie=UTF8&camp=1642&creative=6746&creativeASIN=1797866478&linkCode=as2&tag=pythondjango-
21&linkId=1bbb9230 46b465218bd107d69482d5)
([Link]
ie=UTF8&camp=1642&creative=6746&creativeASIN=2409012264&linkCode=as2&tag=pythondjango-
21&linkId=635e1fd05fa3fa8a13d66632af388dd8)
Python iniciante
Os tuplos (./pagina-aprender-tuplos-tupla-python)
Os dicionários (./page-apprendre-dictionnaire-python)
As funções (./page-apprendre-creer-fonction-en-python)
Os módulos/pacotes (./page-python-modules-package-module-cours-
debutantes-informática-programação
As exceções (./page-apprendre-exceptions-except-python-cours-debutant)
As compreensões de lista
iniciantes)
Os decoradores (./pagina-decoradores-decorator-python-curso-iniciantes)
Os iteradores/geradores (./page-iteradores-iterator-generateur-generator-
python)
Python avançado
Virtualenv (./page-virtualenv-python-environnement-virtuel)
Depurar (./página-debogador-depurador-debug-python-ipython-pdb-pdbpp-curso-
tutoriel-script
Caminho do Python (./page-python-path-pythonpath)
FTP (./page-python-ftp-criar-copiar-ver-pasta-arquivos)
Django
Queryset (./page-django-query-set-queryset-manager)
As views (./page-django-vues-views-generic-generiques-python)
Os middlewares (./page-django-middlewares-vues-views-request-response-
processo-antes-depois-avant-apres
Xadmin (./pagina-django-xadmin-bootstrap-tema-twitter-exportar-xls-csv-xml-
plugin-web-python
Raspberry Pi
IP estática (./page-raspberry-pi-adresse-ip-statique-address-static)
Site