PySimpleGUI – Como desenvolver um aplicativo de gerenciamento de tarefas

Posted by


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.

0 0 votes
Article Rating
44 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@joelamaral
2 months ago

Galera tem outros temas além do Darkblue4?

@marcosmonteiro1763
2 months ago

muito legal

@lucasalmeidacostasilva8722
2 months ago

Como eu faria pra enviar esse checklist? Por exemplo: após estar completo teria que salvar ou enviar para algum lugar …

@VlogDoNero
2 months ago

Se eu quiser salvar o estado em que deixei as tarefas tem como? Sou iniciante em Python

@isabelanayara8223
2 months ago

Cheguei na parte 2
Aeeeeeeee

@alantchunay
2 months ago

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'

@Monster_751pro
2 months ago

o meu return da erro

@69senio
2 months ago

muito massssa

@0800_COL
2 months ago

Como criar um gerenciador de tarefas usando Python e POO?

@pietrovinicius
2 months ago

Vou criar essa aplicação!

Obrigado pelo vídeo!

@daviamerico2268
2 months ago

unica GUI do python que presta é PyQT

@gzinhagleicy
2 months ago

Dá para deixar ela com à função de atualizar a lista por ordem alfabética?

@heidyrodrigues3157
2 months ago

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.

@DanielOliveira-zz2mb
2 months ago

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.

@rodrigoleite8239
2 months ago

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.

@selectasterisco
2 months ago

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 ?

@Eruravo
2 months ago

Onde está o link do plugin citado no video? não encontrei na descrição ;-;

@dokat0
2 months ago

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?

@otelmojuniorborba885
2 months ago

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()

@luizgonzagariosfilho6555
2 months ago

Muito boa a aula. Ficou mais fácil entender! Obrigado!