1. A ideia de multitarefa em aplicações
Então, meus queridos futuros mestres da automação, vamos voltar ao nosso curso de Python e celebrar — já estamos criando aplicativos com interface gráfica no Tkinter! Nesta palestra, vamos aprender como tornar nossa aplicação ainda mais poderosa adicionando a capacidade de executar outros scripts diretamente da interface do usuário. Vamos ser honestos, a possibilidade de executar tarefas automatizadas com um único clique pode nos tornar um pouco menos preguiçosos... ou, ao contrário, nos prender numa armadilha de pijamas em casa. Mas vamos ver como fazer isso!
Conceito de multitarefa
Imagine o seguinte cenário: você tem uma aplicação que pode processar dados automaticamente, fazer web scraping, gerar relatórios. Mas toda vez que você quer executar um dos seus scripts incríveis, precisa alternar entre janelas. É como aquelas TVs antigas, onde você tinha que levantar e apertar o botão no painel para mudar o canal... a evolução nos trouxe o controle remoto, e seu Python GUI vai lidar com a execução de scripts por você!
Entendendo a execução de scripts externos
O Tkinter nos permite conectar a interface com scripts externos, o que é realmente útil. Isso pode ser feito com o módulo padrão subprocess
. O módulo permite iniciar novos processos, executar comandos no shell e até interagir com eles. Vamos dar o primeiro passo para o nosso "centro de controle de automação".
import subprocess
# Exemplo simples de execução de script Python
subprocess.run(["python", "seu_script.py"])
2. Seleção de arquivos e criação da interface de execução
Interface para seleção de script
Para começar, queremos que o usuário possa selecionar o arquivo do script que deseja executar. É mais conveniente fazer isso com o widget FileDialog
do módulo tkinter.filedialog
. Este widget abrirá uma janela padrão de seleção de arquivo, que, como um bom garçom, entregará o arquivo que você escolher.
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw() # Não queremos exibir a janela principal
file_path = filedialog.askopenfilename(title="Selecione o script para executar")
print(f"Arquivo selecionado: {file_path}")
2.2 Criando o botão de execução
Agora adicionamos um botão que, após a seleção do arquivo, permitirá que você o execute.
def launch_script():
file_path = filedialog.askopenfilename(title="Selecione o script para executar")
if file_path:
subprocess.run(["python", file_path])
root = tk.Tk()
launch_button = tk.Button(root, text="Executar script", command=launch_script)
launch_button.pack(pady=20)
root.mainloop()
Agora temos um botão que chama a caixa de diálogo de seleção de arquivo e, após selecionar um arquivo, o executa em um processo separado. Fantástico!
3. Aplicação prática
Criando a interface de controle
Já vimos como executar um script. Vamos adicionar funções de feedback e controles para que nossa aplicação pareça mais profissional.
import tkinter as tk
from tkinter import filedialog, messagebox
import subprocess
def launch_script():
file_path = filedialog.askopenfilename(title="Selecione o script para executar")
if file_path:
try:
result = subprocess.run(["python", file_path], capture_output=True, text=True)
messagebox.showinfo("Resultado da execução", f"Script executado com sucesso!\n\n{result.stdout}")
except subprocess.CalledProcessError as e:
messagebox.showerror("Erro na execução", f"Ocorreu um erro ao executar o script:\n\n{e.stderr}")
root = tk.Tk()
launch_button = tk.Button(root, text="Executar script", command=launch_script)
launch_button.pack(pady=20)
root.mainloop()
Tratamento de erros
Não vivemos em um mundo perfeito, onde não existem erros. Lembramos disso e adicionamos tratamento de erros para que nosso usuário não quebre o monitor por causa de falhas "não óbvias". Usamos try-except
para exibir uma mensagem de erro se o script não puder ser executado.
Retorno do resultado da execução
Além de executar o script, capturamos o resultado da execução e o mostramos ao usuário, porque quem não gosta de ver seu código sendo elogiado? Na realidade, isso é útil para depuração e para entender o que exatamente aconteceu.
4. Como isso tudo pode ser usado?
O mais incrível nas possibilidades de automação via GUI é a versatilidade. A organização do seu fluxo de trabalho se torna mais gerenciável e eficiente. Você pode executar limpeza de dados, criar relatórios, até enviar e-mails — tudo isso, amarrado em um clique. No ambiente de negócios, isso significa menos tempo com tarefas monótonas e mais tempo para inovação. Em entrevistas, isso pode se tornar seu trunfo, mostrando produtividade real e habilidades de integração.
Bônus: nossa interface pode executar não apenas scripts Python, mas praticamente qualquer script, incluindo arquivos bash e batch. O importante é que o sistema saiba como executá-los.
Agora pegue este exemplo, adicione alguns comentários mágicos, e seu colega com certeza vai pensar que você está escondendo algo importante. Mas por enquanto, siga em frente no caminho para criar o seu automatizador perfeito!
Para um aprendizado mais profundo, você pode acessar a documentação oficial do Tkinter e a documentação do módulo subprocess, onde sempre é possível encontrar mais detalhes interessantes e exemplos de uso.
GO TO FULL VERSION