Tkinter
Tkinter
-
Indice:
3 -- Alterando Widgets.
4 -- Posicionamentos
18-Barra de Progresso
22 - Espaçamento padding
Exemplo:
window.mainloop()
window.mainloop()
Este comando diz para a window entrar em um loop e que a janela
permaneça aberta enquanto o mainloop() estiver ativo / enquanto o
usuario não a fechar.
Este comando window.mainloop()deve ser o ultimo a ser
executado no codigo da janela!
window = Tk()
####################################################
###########
3 - Alterando Widgets.
Cada Widget do tkinter tem um formato padrão
ao passarmos parâmetros ao instanciarmos em variáveis estamos
apenas alterando esse padrão
o padrão dos Widgets esta escrito na forma de dicionários
por isso se quisermos alterar o padrão podemos tanto na
instanciação modificá-los, por ex:
texto = Label(window, text="Ola Mundo!")
window = Tk()
#alteramos o texto
texto.pack()
window.mainloop()
####################################################
###########
4 - Posicionamentos:
O tkinter possui 3 diferentes gerenciadores de layout
eles servem para posicionar os widgets de nossa janela e distribui-los.
veja mais sobre eles nas seguintes postagens:
1-Gerenciador de layout place
2-Gerenciador de layout pack
3-Gerenciador de layout grid
####################################################
##########
Ex de uso:
window = Tk()
texto.pack()
window.mainloop()
O resultado desse código sera esse:
####################################################
###########
botao.pack()
Exemplo de uso:
####################################################
###########
window = Tk()
window.geometry("300x200+200+100")
texto.pack()
window.mainloop()
####################################################
##########
def aoClicar():
window = Tk()
window.geometry("300x200+200+100")
mensagem.pack()
botao.pack()
window.mainloop()
para passar uma função como parametro ela deve ter sido criada
antes do botão!
E ao clicar no botão o resultado sera o seguinte:
def aoClicar():
mensagem["text"]="texto: "+entrada.get()
window = Tk()
window.geometry("300x200+200+100")
entrada.pack()
mensagem.pack()
botao.pack()
window.mainloop()
o comando widgetAlvoDoFoco.focus()
por exemplo:
from tkinter import *
window = Tk()
window.geometry("300x200+200+100")
entrada.pack()
entrada.focus()
window.mainloop()
Exemplo de uso:
from tkinter import *
window = Tk()
window.geometry("300x200+200+100")
window.title("TI fora da caixa")
entrada = Entry(window, font="arial 15 bold")
entrada.pack()
entrada["state"]="disabled"
window.mainloop()
e o resultado sera esse:
####################################################
###########
Exemplo de uso:
window = Tk()
window.geometry("300x200+200+100")
window.title("TI fora da caixa")
combo = Combobox(window)
combo['values']= (1, 2, 3, 4, 5, "Text")
combo.current(0) #definimos o valor padrão par ser e
xibido!
combo.pack()
window.mainloop()
E o resultado sera esse:
####################################################
###########
exemplo de uso:
def exibeValor():
mensagem["text"]="Valor: "+combo.get()
window = Tk()
window.geometry("300x200+200+100")
window.title("TI fora da caixa")
combo = Combobox(window)
combo['values']= (1, 2, 3, 4, 5, "Text")
combo.current(0) #definimos o valor padrão!
combo.pack()
botao = Button(window, text="Clique Aqui!", command=
exibeValor)
botao.pack()
mensagem = Label(window, text="Valor: ", font="arial
15 bold")
mensagem.pack()
window.mainloop()
Resultado:
####################################################
###########
13-Adicionar Checkbutton na
janela(Tkinter checkbox)
Para criar um checkbutton no tkinter, você pode usar a classe
Checkbutton dessa forma:
window = Tk()
window.geometry("300x200+200+100")
botaoMarcavelStatus = BooleanVar()
botaoMarcavel.pack()
window.mainloop()
estado = botaoMarcavelStatus.get()
Exemplo de uso:
def recuperarEstado():
if botaoMarcavelStatus.get() ==True:
valor = "sim"
else:
valor = "não"
mensagem["text"]="Valor: "+str(valor)
window = Tk()
window.geometry("300x200+200+100")
mensagem.pack()
botaoMarcavelStatus = BooleanVar()
botaoMarcavel.pack()
botao.pack()
window.mainloop()
####################################################
###########
Exemplo de uso:
def exibeValor():
window.geometry("300x200+200+100")
mensagem.pack()
#radioButtons:
escolha1.pack()
escolha2.pack()
escolha3.pack()
botao.pack()
window.mainloop()
#importamos a classe:
from tkinter import scrolledtext
#e a instanciamos
texto=scrolledtext.ScrolledText(window,width=20,heig
ht=5)
Exeplo de uso:
window = Tk()
window.geometry("300x200+200+100")
texto = scrolledtext.ScrolledText(window,width=20,he
ight=5)
texto.pack()
window.mainloop()
E o resultado sera esse:
####################################################
###########
Exemplo de uso:
window = Tk()
window.geometry("300x200+200+100")
texto = scrolledtext.ScrolledText(window,width=20,he
ight=5)
texto.pack()
window.mainloop()
####################################################
###########
15.2-Limpar TextBox / Input:
Para excluir todo o texto de uma textbox podemos usar a função
delete(), exemplo de uso:
texto.delete(1.0, END)
Exemplo de uso:
def limparTextbox():
texto.delete(1.0,END)
window = Tk()
window.geometry("300x200+200+100")
window.title("TI fora da caixa")
texto = scrolledtext.ScrolledText(window,width=20,he
ight=5)
texto.pack()
bt.pack()
window.mainloop()
####################################################
###########
16-Criar um alerta - MessageBox:
Para utilizar a messagebox precisaremos importar diretamente do
pacote tkinter e utiliza-la da seguinte forma:
messagebox.showinfo('Titulo da mensagem','Conteudo d
a mensagem')
Exemplo de uso:
window = Tk()
window.geometry("300x200+200+100")
messagebox.showinfo('Titulo da mensagem','Conteudo d
a mensagem')
window.mainloop()
####################################################
###########
####################################################
###########
Ex:
Ex:
questao = messagebox.askyesnocancel('Titulo da Pergu
nta','Conteudo da pergunta')#pergunta se sim ou não
ou cancelar
Ex:
Ex:
####################################################
###########
window = Tk()
window.title("TI fora da caixa")
window.geometry("300x200")
spin = Spinbox(window, from_=0, to=100, width=5)
spin.pack()
window.mainloop()
Ao executar este código obtemos esse resultado:
var.set(36)
18-Barra de Progresso:
Podemos criar uma barra de progresso da seguinte forma:
####################################################
###########
18.1-Mudar cor da barra de progresso:
window = Tk()
window.geometry('350x200')
style = ttk.Style()
style.theme_use('default')
style.configure("red.Horizontal.TProgressbar",
background='red')
style='red.Horizontal.TProgressbar')
barra['value'] = 70
barra.pack()
O resultado sera:
####################################################
###########
arquivo = filedialog.askopenfilename()
Exemplo de uso :
window = Tk()
window.title("Ti Fora da Caixa")
window.geometry('350x200')
window.mainloop()
####################################################
###########
pasta = filedialog.askdirectory()
file = filedialog.askopenfilename(
initialdir=path.dirname(__file__))
####################################################
###########
menu = Menu(window)
menu.add_command(label='Arquivo')
window.config(menu=menu)
menu.add_cascade(label='File', menu=new_item)
window = Tk()
menu = Menu(window)
window.config(menu=menu)
new_item = Menu(menu)
new_item.add_command(label='item 2')
menu.add_cascade(label='Arquivo', menu=new_item)
window.mainloop()
window = Tk()
menu = Menu(window)
window.config(menu=menu)
new_item = Menu(menu)
new_item.add_command(label='item 1')
new_item.add_separator()
new_item.add_command(label='item 2')
new_item.add_separator()
new_item.add_command(label='item 3')
menu.add_cascade(label='Arquivo', menu=new_item)
window.mainloop()
####################################################
###########
window = Tk()
window.title("Ti Fora da Caixa")
window.geometry('350x200')
tab_control = ttk.Notebook(window)#1
aba1 = ttk.Frame(tab_control)#2
tab_control.add(aba1, text='Aba 1')#3
tab_control.pack(expand=1, fill='both')
window.mainloop()
####################################################
###########
####################################################
###########
22 - Espaçamento padding:
Você pode adicionar um padding de forma bem simples:
####################################################
###########
23 - Prevenir o redimensionamento da
janela:
Basta adicionar este parâmetro a janela:
window.resizable(width=False, height=False)
window.minsize(width=800, height=600)
window.maxsize(width=300, height=200)
####################################################
###########
window = Tk()
window.geometry('800x600')
window.mainloop()
Resultado:
####################################################
###########
24 - Adicionar borda a um frame:
Ex:
window = Tk()
window.geometry('800x600')
quadro = Frame(window, width=300, height=200, highli
ghtbackground="black", highlightthickness=3)
quadro.pack()
window.mainloop()
####################################################
###########
25 - Estilos de Bordas
Os estilos de bordas podem ser :
"flat", "raised", "sunken", "ridge", "solid", and "groove"