O PySimpleGUI é uma biblioteca Python que permite criar interfaces gráficas de forma rápida e fácil. Neste tutorial, vamos aprender como criar um gerenciador de tarefas simples usando o PySimpleGUI.
Passo 1: Instalar o PySimpleGUI
Antes de começar, certifique-se de instalar o PySimpleGUI em seu ambiente de desenvolvimento. Você pode instalá-lo usando o pip:
pip install PySimpleGUI
Passo 2: Importar os módulos necessários
Vamos começar importando os módulos necessários para criar nosso gerenciador de tarefas:
import PySimpleGUI as sg
Passo 3: Definir o layout da interface gráfica
Agora, vamos definir o layout da nossa interface gráfica. Iremos criar uma janela principal com uma caixa de texto para adicionar tarefas, uma lista de tarefas e dois botões para adicionar e remover tarefas.
layout = [
[sg.Text('Adicionar Tarefa:'), sg.InputText(), sg.Button('Adicionar')],
[sg.Listbox(values=[], size=(30, 10), key='-LIST-')],
[sg.Button('Remover'), sg.Button('Limpar')]
]
Passo 4: Criar a janela
Agora, vamos criar a janela principal da nossa aplicação:
window = sg.Window('Gerenciador de Tarefas', layout)
Passo 5: Loop principal da aplicação
Agora, vamos criar um loop principal para a nossa aplicação. Este loop irá garantir que a janela permaneça aberta e responda aos eventos do usuário.
tasks = []
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
if event == 'Adicionar':
task = values[0]
tasks.append(task)
window['-LIST-'].update(values=tasks)
elif event == 'Remover':
selected_tasks = window['-LIST-'].get()
for task in selected_tasks:
tasks.remove(task)
window['-LIST-'].update(values=tasks)
elif event == 'Limpar':
tasks.clear()
window['-LIST-'].update(values=tasks)
window.close()
Passo 6: Executar a aplicação
Agora que nosso gerenciador de tarefas está completo, podemos executá-lo:
if __name__ == '__main__':
tasks = []
window = sg.Window('Gerenciador de Tarefas', layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
if event == 'Adicionar':
task = values[0]
tasks.append(task)
window['-LIST-'].update(values=tasks)
elif event == 'Remover':
selected_tasks = window['-LIST-'].get()
for task in selected_tasks:
tasks.remove(task)
window['-LIST-'].update(values=tasks)
elif event == 'Limpar':
tasks.clear()
window['-LIST-'].update(values=tasks)
window.close()
Parabéns! Você acabou de criar um gerenciador de tarefas simples usando o PySimpleGUI. Sinta-se à vontade para personalizar o layout e adicionar mais funcionalidades conforme necessário. O PySimpleGUI é uma ferramenta poderosa para criar interfaces gráficas de forma rápida e fácil em Python.
Galera tem outros temas além do Darkblue4?
muito legal
Como eu faria pra enviar esse checklist? Por exemplo: após estar completo teria que salvar ou enviar para algum lugar …
Se eu quiser salvar o estado em que deixei as tarefas tem como? Sou iniciante em Python
Cheguei na parte 2
Aeeeeeeee
não tem uma forma mais semântica de fazer essa "navegação" pelas janelas? ficar o tempo todo fechando e abrindo novas janelas é bem ineficiente, além de ter esse "problema" da janela voltar pro centro da tela'
o meu return da erro
muito massssa
Como criar um gerenciador de tarefas usando Python e POO?
Vou criar essa aplicação!
Obrigado pelo vídeo!
unica GUI do python que presta é PyQT
Dá para deixar ela com à função de atualizar a lista por ordem alfabética?
Parabéns pela aula! Dúvida, quando dei o play não aparece. O que estou fazendo de errado? Já verifiquei o código umas mil vezes.
muito obrigado salvou a minha vida, passei uma semana tentando como encontrar para adicionar elemento através dos event li a documentação do pysimplegui mais como é grande não encontrei essa parte explicando, fiquei muito desanimado, muito obrigado se um dia eu ficar rico vou lhe retribuir.
vc tem que fazer um vídeo falando como vc pode jogar esse valor pra uma lista e exibir a lista na janela do PySimpleGUI. ta faltando isso.
Sensacional
Vídeo muito bem explicado e super didático
Parabéns brother !
Só uma dúvida, tem a possibilidade de eu adicionar uma ou mais tarefas, fechar o programa e quando reabrir essas tarefas continuarem aparecendo ?
Onde está o link do plugin citado no video? não encontrei na descrição ;-;
Será q n tem como ao invés de reiniciar a janela pra limpar a lista, apagar os frames adicionados se mantendo na mesma janela?
Cara, seu trabalho é incrível, to na lista de espera do seu curso, quanto a esse desafio estou tendo o seguinte problema: Traceback (most recent call last):
File "c:UsersotelmOneDriveÁrea de Trabalhotoolapp.py", line 17, in <module>
janela = criar_janela_inicial()
File "c:UsersotelmOneDriveÁrea de Trabalhotoolapp.py", line 10, in criar_janela_inicial
[sg.Frame('Tarefas', Layout=linha, key='container'),
TypeError: Frame.__init__() got an unexpected keyword argument 'Layout'
PS C:UsersotelmOneDriveÁrea de Trabalhotool>
Meu código:
import PySimpleGUI as sg
def criar_janela_inicial():
sg.theme('DarkBlue4')
linha = [
[sg.Checkbox(''), sg.InputText('')]
]
layout = [
[sg.Frame('Tarefas', Layout=linha, key='container'),
sg.Button('Nova Tarefa'), sg.Button('Resetar')]
]
return sg.Window('Todo List', Layout=layout, finalize=True)
janela = criar_janela_inicial()
while True:
event, values = janela.Read()
if event == sg.WIN_CLOSED:
break
elif event == 'Nova Tarefa':
janela.extend_layout(janela['container'], [
[sg.Checkbox(''), sg.Input('')]])
elif event == 'Resetar':
janela.close()
janela = criar_janela_inicial()
Muito boa a aula. Ficou mais fácil entender! Obrigado!