Visão geral
Uma boa estratégia para o desenvolvimento de aplicações desktop modernas é o uso do padrão MVC (Model-View-Controller), que permite que o projeto escale sem maior dificuldade.
Model: camada de dados
O arquivo
database.py concentra toda a inteligência da persistência dos dados.
O
sqlite3 pode ser uma boa alternativa para o gerenciamento de um banco local.
Uma classe
Database única pode concentrar os métodos para realizar todas as operações de CRUD.
O uso de
sys e
os para identificar o caminho (path) do banco de dados garante a portabilidade entre diferentes sistemas operacionais.
Controller: lógica da aplicação
Os arquivos de controle atuam como intermediários, importando o
Model para processar as regras de negócio.
Cada tabela do banco possui seu próprio arquivo "py" controlador (exemplo:
viagem-controler.py,
despesa-controler.py etc)
Para as importações entre pastas, recomenda-se o uso do
sys.path.insert para garantir o caminho da pasta
src (fonte).View: interface do usuário
A interface de apresentação pode ser construída com
PySide6.
Um arquivo
main_window.py deve gerenciar as transições entre janelas, sendo estas associadas a outros arquivos "py" (exemplo:
viagem_window.py,
config_dialog.py etc).
O design visual fica separado em arquivos "ui" dentro da pasta
Forms.
Obs.: a View nunca deve acessar o Banco de Dados diretamente (ela apenas exibe o que o Controller envia).
Conclusão
O padrão MVC permite que cada componente tenha uma responsabilidade única na aplicação. Isso facilita o trabalho em equipe, a realização de testes e a manutenção futura do software.