jueves, 9 de enero de 2020

Centrar texto en consola con python y curses

Es bien sabido mi gusto por el uso de la terminal, a tal grado que mis aplicaciones personales las realizo en este entorno, sin embargo, el "proyecto mayor" me estresa el pensar la cantidad de trabajo pendiente para verlo funcionando, así que opté por hacer pequeñas aplicaciones para tomar experiencia.


En esta ocasión, hice un pequeño avance que me gustó y quise compartirlo: centrar el título, independientemente del dispositivo en el cual se ejecuta la aplicación, puesto que en mi trabajo tengo una AllInOne de 24", en casa uso una lap de 14", para codear uso una mini de 11" y ocasionalmente pruebo en mi smart de 6". Anteriormente estaba usando un código diferente para cada dispositivo, pero hoy se me ocurrió copiar esa idea de un programa ejemplo y aquí está:

#!/usr/bin/env python
# -*- coding: Windows-1252 -*-
import curses
def menu(stdscr):
# Se limpia la ventana
stdscr.clear()
stdscr.refresh()
stdscr.erase()
# Se obtiene el máximo de filas y columnas
alto, ancho = stdscr.getmaxyx()
# Se calcula el título para centrarlo
titulo = 'Módulo de cambio de precios'[:ancho-1]
posicion_titulo = int((ancho//2) - (len(titulo)//2) - len(titulo) % 2)
stdscr.addstr(0,posicion_titulo, titulo)
k = stdscr.getch()
def main():
curses.wrapper(menu)
if __name__ == "__main__":
main()

Requiere más explicación? Yo creo que no...

No hay comentarios.:

Publicar un comentario