<img height="1" width="1" src="https://www.facebook.com/tr?id=1101141206686180&amp;ev=PageView &amp;noscript=1">

Crear una calculadora con Pyside

Python no es realmente el primer lenguaje que viene a la mente cuando se piensa en el desarrollo de GUI. Sin embargo, es una gran herramienta para automatizar todo tipo de flujos de trabajo. Puede haber ciertos casos de uso cuando una especie de integración de interfaz de usuario realmente puede ayudar en la automatización. Últimamente, he estado usando PySide como mi elección de una biblioteca de interfaz de usuario de Python. Se basa en el marco Qt y es de uso gratuito. Para hoy, pensé que sería una entrada de blog divertida crear una calculadora matemática GUI básica en PySide para aquellos interesados en aprender algo de la sintaxis.

Aquí está el Hello World básico. He creado una clase que representa la ventana principal, he establecido algunos parámetros como el tamaño y el título, y luego he añadido un layout con una etiqueta. Piense en el diseño como un contenedor para todos los demás componentes.

ss_snippet_1

pic_1

Ahora necesito crear algunos botones y ponerlos en un QGridLayout. Decidí crear dos clases más para mantener la clase MainWindow un poco más limpia. La primera clase será la base de todos mis botones.


La segunda clase sólo se basa en el QGridLayout y mi clase StdButton para hacer la cuadrícula de botones como una calculadora real. Utilizo un bucle para crear los números pero añado manualmente el resto de los botones. Estoy seguro de que esto podría ser refactorizado para que se vea más limpio.


He creado una función global para probar la señal del botón pulsado.

StdButton_Comment

testFunc

El siguiente paso es hacer el indicador digital que crea la por encima de los botones. Para ello, estoy haciendo otra clase que consistirá simplemente en un QLabel con estilo. La añadiré a la clase de la ventana principal.

NumGrid_Comment

Ahora necesito una forma de actualizar el indicador cada vez que se pulse un botón. Definiré 3 funciones para hacer esto. Do_math se utilizará para realizar la aritmética básica. La función get_op se usará para analizar qué opción necesito usar cuando llame a do_math. La función handle_click se utilizará para modificar la cadena que muestro en el indicador. Para simplificar las cosas, trato todos los operadores como un '=' si ya tengo uno en el indicador.

Math_comments

Nunca añadí soporte para el botón positivo/negativo. Si encontraste esto interesante y te gustaría aprender más, reto a quien lea hasta el final, a añadir soporte para el último botón. Puedes liberar el código fuente completo en mi página de GitHub. https://github.com/AshtonScalise/pyside-calculator

Abajo está el producto final de la calculadora.

final