Tkinter gui em python

Tkinter gui em python
GUIs permitem que os usuários interajam com o computador e são uma parte importante da codificação. Este tutorial aprenderá a usar o TKINER para criar uma GUI, particularmente um conversor de moeda.

Instale o tknter da seguinte maneira:

pip install tk

Etapa 1: Criando a janela

A primeira coisa que precisamos fazer é criar a janela usando a classe tk (). No entanto, começamos a janela e continuamos usando o método Mainloop (). Observe que a janela que você criou não será visível sem o método mainloop ()! Lembre -se de que o método mainloop () deve ser colocado no final do código; Caso contrário, o resto não funcionará. A janela.Mainloop () e o tk () juntos criarão uma janela em branco e vazia. Esta janela é a nossa base.

Importar tknter como tk
# Crie a janela
janela = tk.Tk ()
#Mainloop
janela.MAINLOOP ()

Etapa 2: Dê um título a janela

Em seguida, vamos dar a esta janela em branco um título usando o método title (). O método title () leva um único argumento - o título da janela.

importar tknter como tk
janela = tk.Tk ()
# Dê um título
Cabeçalho = janela.Title ("Converter de moeda")
janela.MAINLOOP ()

Etapa 3: Crie uma tela

O widget de tela é usado para adicionar designs. Agora definimos o widget de tela, o que pode levar 13 argumentos ao máximo. No entanto, os argumentos mais importantes são a janela com a qual queremos trabalhar e a altura e largura da tela. Em Tknter, a maioria das coisas está embalada, então a tela é embalada usando o método pack () para funcionar.

importar tknter como tk
janela = tk.Tk ()
Cabeçalho = janela.Title ("Converter de moeda")
tela = tk.Tela (janela, largura = 550, altura = 330)
tela.pacote()
janela.MAINLOOP ()

Etapa 4: Adicionando etiquetas

Os rótulos são basicamente apenas pedaços de textos que adicionamos à janela. No meu caso, adicionarei 3 rótulos - um rótulo é o título e os outros dois são instruções. O widget da etiqueta leva 2 argumentos aqui - a janela para colocar o texto e o texto para escrever nele. Você pode personalizá -lo usando ainda usando o config () para passar a fonte e o tamanho do texto que você acabou de escrever.

Criamos ainda um objeto de janela de tela usando Create_window (). Create_window () leva no máximo 6 argumentos - a âncora, a altura, o estado, as tags, a largura e a janela (o widget usado para fazer a tela). Usaremos apenas ancoragem e janela para create_windows (). Então, no meu caso, para o segundo rótulo - Label_search_bar - quero que ele seja posicionado em x = 150, y = 120, e a janela que usarei é o rótulo que criamos (tela.create_window (150, 120, window = label_search_bar)).

importar tknter como tk
janela = tk.Tk ()
Cabeçalho = janela.Title ("Converter de moeda")
tela = tk.Tela (janela, largura = 550, altura = 330)
tela.pacote()
etiqueta = tk.Etiqueta (janela, text = "conversor de moeda de Kalyani")
rótulo.config (font = ('helvetica', 14))
tela.create_window (270, 75, janela = rótulo)
LABEL_SEARCH_BAR = TK.Etiqueta (janela, text = "de (ex: 500 USD):")
rótulo.config (font = ('helvetica', 14))
tela.create_window (150, 120, window = label_search_bar)
LABEL_CONVERT_CURRENCY = TK.Etiqueta (janela, text = "para (ex: cad):")
rótulo.config (font = ('helvetica', 14))
tela.create_window (270, 120, window = label_convert_currency)
janela.MAINLOOP ()

Etapa 5: Adicionando uma barra de entrada

Uma barra de entrada é como uma barra de pesquisa; É uma caixa pequena onde você pode inserir dados ou informações. Usamos o widget de entrada para criar a barra de entrada. O widget de entrada leva no máximo 18 argumentos. Vamos usar apenas um deles - a janela dos pais. Em seguida, colocamos isso, como sempre, usando tela.create_window ().

importar tknter como tk
janela = tk.Tk ()
Cabeçalho = janela.Title ("Converter de moeda")
tela = tk.Tela (janela, largura = 550, altura = 330)
tela.pacote()
etiqueta = tk.Etiqueta (janela, text = "conversor de moeda de Kalyani")
rótulo.config (font = ('helvetica', 14))
tela.create_window (270, 75, janela = rótulo)
LABEL_SEARCH_BAR = TK.Etiqueta (janela, text = "de (ex: 500 USD):")
rótulo.config (font = ('helvetica', 14))
tela.create_window (150, 120, window = label_search_bar)
LABEL_CONVERT_CURRENCY = TK.Etiqueta (janela, text = "para (ex: cad):")
rótulo.config (font = ('helvetica', 14))
tela.create_window (270, 120, window = label_convert_currency)
Search_bar = Tk.Entrada (janela)
tela.create_window (150, 150, altura = 30, largura = 100, janela = search_bar)
convert_currency = tk.Entrada (janela)
tela.create_window (270, 150, altura = 30, largura = 100, janela = convert_currency)
janela.MAINLOOP ()

Etapa 6: Adicionando um botão

Para criar um botão, precisamos do widget de botão. Este widget recebe muitos argumentos, entre os quais o texto (o texto a ser exibido no botão), a largura, a altura, a BG (a cor de fundo do botão), o FG (a cor do primeiro plano do botão ), a fonte e o comando. Aqui, a parte mais importante é o comando! O comando definirá uma função que será ativada quando o botão for clicado. No meu caso, eu chamei minha função em moeda. Para começar, vou colocar "passe" na minha função CurrencyConverter. (Nós, é claro, localizamos o botão usando create_window).

importar tknter como tk
Def CurrencyConverter ():
passar
janela = tk.Tk ()
Cabeçalho = janela.Title ("Converter de moeda")
tela = tk.Tela (janela, largura = 550, altura = 330)
tela.pacote()
etiqueta = tk.Etiqueta (janela, text = "conversor de moeda de Kalyani")
rótulo.config (font = ('helvetica', 14))
tela.create_window (270, 75, janela = rótulo)
LABEL_SEARCH_BAR = TK.Etiqueta (janela, text = "de (ex: 500 USD):")
rótulo.config (font = ('helvetica', 14))
tela.create_window (150, 120, window = label_search_bar)
LABEL_CONVERT_CURRENCY = TK.Etiqueta (janela, text = "para (ex: cad):")
rótulo.config (font = ('helvetica', 14))
tela.create_window (270, 120, window = label_convert_currency)
Search_bar = Tk.Entrada (janela)
tela.create_window (150, 150, altura = 30, largura = 100, janela = search_bar)
convert_currency = tk.Entrada (janela)
tela.create_window (270, 150, altura = 30, largura = 100, janela = convert_currency)
botão = tk.Botão(
janela,
text = "Converter moeda",
largura = 25,
altura = 3,
bg = "branco",
FG = "Black",
font = ('helvetica', 9, 'ousado'),
comando = moedaConverter
)
tela.create_window (275, 200, altura = 40, largura = 150, janela = botão)
janela.MAINLOOP ()

Etapa 7: Escrevendo a função de comando

Aqui, a função de comando dirá ao programa o que fazer quando o usuário clicar no botão. No meu caso, eu gostaria de:

  • Obtenha os valores de entrada usando o método get ().
  • Verifique os valores de entrada. Eu quero um número e uma moeda na primeira barra de entrada e, no segundo, quero uma moeda.
  • Converta os valores da moeda usando o módulo CurrencyConverter no Python.
  • Chuck Out o valor
importar tknter como tk
Def CurrencyConverter ():

Primeiro, buscaremos o que o usuário escreveu nas barras de entrada usando o método get () e o colocará em Initial_currency.

Initial_currency = Search_bar.pegar()

Aqui, esperamos dois valores (Ex: 500 USD), então o dividimos para transformá -lo em uma matriz.

Array = Initial_currency.dividir(" ")

Dizemos então que se o comprimento dessa matriz não for 2, queremos que ela ligue um erro na tela da janela. No meu caso, usarei o widget de etiqueta () para criar o texto a ser exibido. Ou seja, se o comprimento da minha matriz não for 2, escreva “Por favor, insira um valor e um tipo de moeda (Ex: 500 USD)” na tela. Coloque -o usando tela.create_windows ().

Se Len (Array) != 2:
print_out = Label (Window, text = "Por favor, digite um valor e um tipo de moeda (Ex: 500 USD)")
tela.create_window (250, 310, janela = print_out)

Queremos então buscar os valores que foram inseridos. O valor é o primeiro valor na matriz, e o tipo de moeda é o segundo valor na matriz.

valor = int (matriz [0])
moeda = str (matriz [1]).superior()

Em seguida, precisamos do tipo de moeda em que o valor está sendo convertido em (Ex: 500 USD para CAD). Eu defini uma variável chamada to_currency para obter a entrada do usuário na segunda barra de entrada. Mais uma vez, usamos o método get () para buscar o valor.

to_currency = convert_currency.pegar()

Agora, precisamos adulterar o que acabamos de obter. O usuário inseriu algumas coisas e queremos apenas o primeiro valor do que foi inserido, então dividimos tudo e escolhemos o primeiro valor usando [0]. (Eu também transformo tudo para maiúsculas para evitar problemas).

Array_to_currency = to_currency.dividir(" ")
to_currency = str (array_to_currency [0])
to_currency = to_currency.superior()

Agora, usamos um módulo do Python chamado Conversor de Moeda (PIP Install CurrencyConverter). Convertemos a moeda e obtemos uma quantia (aqui, eu chamo essa variável de valor_convertada).

De Currency_Converter importar moeda
C = CurrencyConverter ()
vale_converted = c.converter (quantidade, moeda, to_currency)

Em seguida, precisamos imprimir isso na janela. Como sabemos, imprimimos o texto usando o widget de etiqueta. Como o valor_converted (a moeda convertida) é um bóia, dizemos:

text_to_input = str (vale_converted) + "" + to_currency
print_out_answer = Label (janela, text = text_to_input)
tela.create_window (450, 150, janela = print_out_answer)

Todo o código ficaria assim:

da importação de tknter *
Def CurrencyConverter ():
# Obtenha a entrada na barra de pesquisa
Initial_currency = Search_bar.pegar()
# dividi -lo
Array = Initial_currency.dividir(" ")
Se Len (Array) != 2:
print_out = Label (Window, text = "Por favor, digite um valor e um tipo de moeda (Ex: 500 USD)")
tela.create_window (250, 310, janela = print_out)
# Obtenha o valor "de" e o valor do dólar
valor = int (matriz [0])
moeda = str (matriz [1]).superior()
# Obtenha a entrada na moeda convertida para
to_currency = convert_currency.pegar()
Array_to_currency = to_currency.dividir(" ")
to_currency = str (array_to_currency [0])
to_currency = to_currency.superior()
# converta
De Currency_Converter importar moeda
C = CurrencyConverter ()
vale_converted = c.converter (quantidade, moeda, to_currency)
# Imprima a resposta
text_to_input = str (vale_converted) + "" + to_currency
print_out_answer = Label (janela, text = text_to_input)
tela.create_window (450, 150, janela = print_out_answer)
# Crie a janela
janela = tk ()
# Crie uma tela e empacote -a
tela = tela (janela, largura = 550, altura = 330, alívio = 'elevado')
tela.pacote()
# Dê um título
Cabeçalho = janela.Title ("Conversor de moeda de Kalyani")
# Nome do navegador
Label = Label (Window, Text = "Kalyani's Currency Converter")
rótulo.config (font = ('helvetica', 14))
tela.create_window (270, 75, janela = rótulo)
# Crie uma barra de pesquisa
search_bar = entrada (janela, justify = Center)
tela.create_window (150, 150, altura = 30, largura = 100, janela = search_bar)
# Rotule a barra de pesquisa
Label_search_bar = Label (Window, text = "de (Ex: 500 USD):")
rótulo.config (font = ('helvetica', 14))
tela.create_window (150, 120, window = label_search_bar)
# Converta moeda
convert_currency = entrada (janela, justify = centro)
tela.create_window (270, 150, altura = 30, largura = 100, janela = convert_currency)
# Rotule a moeda
LABEL_CONVERT_CURRENCY = LABEL (Window, Text = "To (Ex: Cad):")
rótulo.config (font = ('helvetica', 14))
tela.create_window (270, 120, window = label_convert_currency)
#Crie um botão
botão = botão (
janela,
text = "Converter moeda",
largura = 25,
altura = 3,
bg = "branco",
FG = "Black",
font = ('helvetica', 9, 'ousado'),
comando = moedaConverter
)
#place o botão
tela.create_window (275, 200, altura = 40, largura = 150, janela = botão)
#Mainloop
janela.MAINLOOP ()

Embora o código seja um pouco mais longo do que o esperado, é realmente bastante simples. Você só precisa se lembrar de algumas coisas:

  • Você escreve textos com o widget de etiqueta
  • Você cria botões com o widget de botão
  • Você cria barras de entrada com o widget de entrada
  • Você os coloca no local certo usando o widget de tela e create_window ()

Codificação feliz!