Python - formatação de String em Listbox de TKinter

Python - formatação de String em Listbox de TKinter

Um exemplo de apresentação/Formatação de Strings no ambiente gráfico




O problema existente era a má formatação de um output feito numa Listbox.
O programa em si, faz alguns cálculos ferroviários, digamos. O output estava com uma formatação pouco legível, o que leva a dificuldade de identificação dos campos e resultados. A Listbox é um bom Widget, pois o utilizador pode seleccionar facilmente o texto, copiar e colar noutra aplicação.

Este é o ciclo que coloca na Listbox a Informação:
Output original

Existe uma biblioteca que já usei antes, tabulate, que apresenta a informação de forma formatada na linha de comandos.

E segue válida para ir observando o comportamento do programa. No entanto tentei aplicar este "tabulate" ao Listbox sem muito sucesso imediato.


Outra opção é a formatação de Strings do próprio Python.

A expressão :<15 formata a string para ocupar 15 caracteres após o final com formatação à esquerda. A expressão com o ^ formata ao centro.



Então a acção imediata foi enviar o trabalho de formatação para uma função "formatacao":


Primeira tentativa para um algoritmo de cálculo da string completa, calculando os caracteres em falta:

E deu um erro, faz parte do processo.

Faltava a colocação da palavra reservada, comando, "LEN" para determinar o comprimento de "txt".


No entanto a solução final passou por vário passos.
Coloquei uma condição simples para alguns campos terem comprimentos diferentes.
E faltava atribuir à Listbox uma fonte monospace.

E o resultado final bastante aceitável para o propósito da aplicação.
Listbox Tkinter


Comentários

Mensagens populares deste blogue

Linha do Oeste - Breve visita

AMV – Aparelhos de Mudança de Via

Python - Larguras de vias em Excel para ISPOL