image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Vinicius Carvalho
Vinicius Carvalho10/10/2023 23:11
Compartilhe

Kanban de Tarefas em Python: Organização Eficiente para Gestão da Rotina

    Introdução:

    O Kanban é uma poderosa ferramenta de gerenciamento visual que se originou no Japão e foi desenvolvida inicialmente pela Toyota para otimizar a produção em suas fábricas. Hoje em dia, o Kanban é amplamente utilizado em diversos setores, incluindo desenvolvimento de software, gerenciamento de projetos, atendimento ao cliente e muitos outros. Ele proporciona uma maneira eficiente e visual de controlar o fluxo de trabalho, permitindo que equipes e indivíduos gerenciem tarefas, projetos e processos de forma mais eficaz.

    Código:

    Aqui está um exemplo de código em Python que implementa um Kanban de Tarefas simples usando a biblioteca tkinter. Este código fornece uma interface gráfica para adicionar tarefas a três colunas: "A fazer", "Em andamento" e "Concluído". Ele também permite mover tarefas entre as colunas e remover tarefas concluídas.

    import tkinter as tk

    from tkinter import messagebox

    def adicionar_tarefa():

      nova_tarefa = entrada.get()

      if nova_tarefa:

        lista_a_fazer.insert(tk.END, nova_tarefa)

        entrada.delete(0, tk.END)

      else:

        messagebox.showwarning("Aviso", "Digite uma tarefa válida!")

    def mover_para_em_andamento():

      try:

        selecionada = lista_a_fazer.curselection()[0]

        tarefa = lista_a_fazer.get(selecionada)

        lista_a_fazer.delete(selecionada)

        lista_em_andamento.insert(tk.END, tarefa)

      except IndexError:

        messagebox.showwarning("Aviso", "Selecione uma tarefa para mover para 'Em andamento'!")

    def mover_para_concluido():

      try:

        selecionada = lista_em_andamento.curselection()[0]

        tarefa = lista_em_andamento.get(selecionada)

        lista_em_andamento.delete(selecionada)

        lista_concluido.insert(tk.END, tarefa)

      except IndexError:

        messagebox.showwarning("Aviso", "Selecione uma tarefa para mover para 'Concluído'!")

    def remover_tarefa():

      try:

        selecionada = lista_concluido.curselection()[0]

        lista_concluido.delete(selecionada)

      except IndexError:

        messagebox.showwarning("Aviso", "Selecione uma tarefa para remover!")

    # Cria a janela principal

    janela = tk.Tk()

    janela.title("Kanban de Tarefas")

    # Define cores de fundo e fonte

    cor_fundo = "#F0F0F0"

    fonte = ("Helvetica", 12)

    # Define cores para os quadros Kanban e suas bordas

    cor_a_fazer = "#FFA07A" # Tom de salmão

    cor_em_andamento = "#ADD8E6" # Azul claro

    cor_concluido = "#98FB98" # Verde claro

    # Cria um quadro para a entrada de texto e botão de adicionar

    quadro_superior = tk.Frame(janela, bg=cor_fundo)

    quadro_superior.pack(pady=20)

    entrada = tk.Entry(quadro_superior, width=40, font=fonte)

    entrada.pack()

    btn_adicionar = tk.Button(quadro_superior, text="Adicionar Tarefa", command=adicionar_tarefa, font=fonte)

    btn_adicionar.pack()

    # Cria um quadro principal para os quadros Kanban

    quadro_principal = tk.Frame(janela, bg=cor_fundo)

    quadro_principal.pack()

    # Cria quadros para representar os estágios Kanban

    quadro_a_fazer = tk.Frame(quadro_principal, bg=cor_a_fazer, borderwidth=2, relief=tk.SOLID)

    quadro_a_fazer.pack(side=tk.LEFT, padx=20)

    quadro_em_andamento = tk.Frame(quadro_principal, bg=cor_em_andamento, borderwidth=2, relief=tk.SOLID)

    quadro_em_andamento.pack(side=tk.LEFT, padx=20)

    quadro_concluido = tk.Frame(quadro_principal, bg=cor_concluido, borderwidth=2, relief=tk.SOLID)

    quadro_concluido.pack(side=tk.LEFT, padx=20)

    # Adiciona rótulos para identificação dos quadros Kanban

    label_a_fazer = tk.Label(quadro_a_fazer, text="A fazer", font=fonte, bg=cor_a_fazer)

    label_a_fazer.pack()

    label_em_andamento = tk.Label(quadro_em_andamento, text="Em andamento", font=fonte, bg=cor_em_andamento)

    label_em_andamento.pack()

    label_concluido = tk.Label(quadro_concluido, text="Concluído", font=fonte, bg=cor_concluido)

    label_concluido.pack()

    # Cria as listas em cada coluna

    lista_a_fazer = tk.Listbox(quadro_a_fazer, selectbackground='#FFD700', selectmode=tk.SINGLE, width=20, height=10, font=fonte)

    lista_a_fazer.pack()

    lista_em_andamento = tk.Listbox(quadro_em_andamento, selectbackground='#FFD700', selectmode=tk.SINGLE, width=20, height=10, font=fonte)

    lista_em_andamento.pack()

    lista_concluido = tk.Listbox(quadro_concluido, selectbackground='#FFD700', selectmode=tk.SINGLE, width=20, height=10, font=fonte)

    lista_concluido.pack()

    # Cria botões para mover tarefas entre as colunas

    btn_mover_em_andamento = tk.Button(quadro_a_fazer, text="Mover para 'Em andamento'", command=mover_para_em_andamento, font=fonte)

    btn_mover_em_andamento.pack()

    btn_mover_concluido = tk.Button(quadro_em_andamento, text="Mover para 'Concluído'", command=mover_para_concluido, font=fonte)

    btn_mover_concluido.pack()

    btn_remover = tk.Button(quadro_concluido, text="Remover Tarefa", command=remover_tarefa, font=fonte)

    btn_remover.pack()

    # Inicia a interface gráfica

    janela.mainloop()

    Considerações:

    Este código pode ser um ponto de partida para a criação de um sistema de gerenciamento de tarefas mais sofisticado, por isso convido você, leitor, para contribuir com sugestões e melhorias para esse código.

    Compartilhe
    Comentários (2)
    Gustavo Martins
    Gustavo Martins - 17/10/2023 18:46

    Continue com o excelente trabalho! 👏

    Robson Mendonça
    Robson Mendonça - 13/10/2023 10:24

    Continuar compartilhando seu conhecimento e experiência é uma forma valiosa de enriquecer nossa comunidade de desenvolvedores.

    Continue com o excelente trabalho! 👏 Estamos ansiosos para seus próximos artigos e aprendizados.