integrar interface gráfico na aplicação

This commit is contained in:
2025-05-02 21:07:20 +01:00
parent 2af661e990
commit e2293164d4

33
main.py
View File

@ -3,18 +3,30 @@
from pathlib import Path from pathlib import Path
from modules import scanner, copier from modules import scanner, copier
from modules.logger import logger from modules.logger import logger
from modules.gui import UniqGUI
import tkinter as tk
def main_gui():
# interface gráfica
root = tk.Tk()
app = UniqGUI(root)
root.mainloop()
def main(): def main():
# Mostrar menu e interagir com o utilizador # Mostrar menu e interagir com o utilizador
# Receber caminho da origem e destino # Receber caminho da origem e destino
caminho_pasta_origem = input("Introduza caminho da pasta de origem: ").strip() caminho_pasta_origem = input(
"Introduza caminho da pasta de origem: ").strip()
if not Path(caminho_pasta_origem).is_dir(): if not Path(caminho_pasta_origem).is_dir():
logger.error("Caminho '%s' não é um directório válido.", caminho_pasta_origem) logger.error("Caminho '%s' não é um directório válido.",
caminho_pasta_origem)
raise NotADirectoryError( raise NotADirectoryError(
f"Erro: {caminho_pasta_origem} não é um directório válido" f"Erro: {caminho_pasta_origem} não é um directório válido"
) )
caminho_pasta_destino = input("Introduza caminho da pasta de destino: ").strip() caminho_pasta_destino = input(
"Introduza caminho da pasta de destino: ").strip()
if not Path(caminho_pasta_destino).is_dir(): if not Path(caminho_pasta_destino).is_dir():
logger.info( logger.info(
"Não foi encontrado directório de destino '%s'. criado directório.", "Não foi encontrado directório de destino '%s'. criado directório.",
@ -36,7 +48,8 @@ def main():
== "s" == "s"
) )
# definir formato de data # definir formato de data
formato_data: str = input("Defina um formato de data (defeito: %d-%m-%Y): ").strip() formato_data: str = input(
"Defina um formato de data (defeito: %d-%m-%Y): ").strip()
if not formato_data: if not formato_data:
formato_data = "%d-%m-%Y" formato_data = "%d-%m-%Y"
# excluir duplicados? # excluir duplicados?
@ -47,8 +60,10 @@ def main():
# criar lista de ficheiros que estão na origem # criar lista de ficheiros que estão na origem
# excluir os duplicados # excluir os duplicados
if excluir_duplicados: if excluir_duplicados:
dicionario_ficheiros = scanner.listar_ficheiros_unicos(caminho_pasta_origem) dicionario_ficheiros = scanner.listar_ficheiros_unicos(
lista_ficheiros = [ficheiros[0] for ficheiros in dicionario_ficheiros.values()] caminho_pasta_origem)
lista_ficheiros = [ficheiros[0]
for ficheiros in dicionario_ficheiros.values()]
# ou manter todos os ficheiros # ou manter todos os ficheiros
else: else:
lista_ficheiros = scanner.listar_ficheiros(caminho_pasta_origem) lista_ficheiros = scanner.listar_ficheiros(caminho_pasta_origem)
@ -67,8 +82,10 @@ def main():
usar_data_criacao, usar_data_criacao,
formato_data, formato_data,
) )
print(f"Concluida a cópia de {len(lista_ficheiros)} para {caminho_pasta_destino}.") print(f"Concluida a cópia de {len(lista_ficheiros)} para {
caminho_pasta_destino}.")
if __name__ == "__main__": if __name__ == "__main__":
main() # main()
main_gui()