Como introducción a programación de interfaces (GUI), en este post vamos a ver como hacer un “Hello World” con PySide desde Python, con una sencilla plantilla que comparto desde mi github. Ver aquí
Introducción
La plantilla está compuesta por los siguientes archivos / directorios:
- mainOps.py -> Script principal que llama a las dependencias de la interfaz y demás librerías
- gui -> Directorio que contiene las instrucciones de la construcción de la ventana y la propia ventana
- ventana.ui ->XML de construcción de la ventana. ver documentación oficial
- ventana.py ->Archivo traducido de ventana.ui a objetos python Pyside
- convert.bat -> Script de conversión de ventana.ui a ventana.py, busca ventana.ui en el mismo directorio.
- lib -> Directorio con otras clases
Para el funcionamiento de todo ello es necesario tener instalado PySide
Al ejecutar mainOps.py, nos aparecerá la siguiente ventana:
Al hacer click en “Ejecutar acción” nos aparecerá un Hello World
Analizando brevemente el código
mainOps.py
-
-
-
- Imports: Aquí se importan las librerías de PySide, la ventana que hemos diseñado, una clase “Habla” dentro de lib, y sys.
from PySide import QtCore, QtGui from gui.ventana import Ui_Form from lib.trenlr import Habla import sys
- class Interfaz: clase para trabajar con los elementos de la interfaz
class Interfaz(QtGui.QWidget, Ui_Form): def __init__(self): super(Interfaz, self).__init__() #Invocamos los métodos de la clase padre para trabajar con los objetos de la interfaz self.setupUi(self) QtCore.QObject.connect(self.BotonEjecutar, QtCore.SIGNAL ('clicked()'), self.starter) #Conectamos el botón BotonEjecutar definido en ventana.py (ver contenido) con el método starter def starter(self): _blabla = Habla() #Invocamos Habla con la variable _blabla self.CampoLog.appendPlainText(_blabla.saludar()) #Pasamos la salida del método saludar al final del campo de texto CampoLog
- Imports: Aquí se importan las librerías de PySide, la ventana que hemos diseñado, una clase “Habla” dentro de lib, y sys.
-
-
Como diseñar una ventana
Para generar las ventanas Qt deja a disposición un “Designer” o “Creator”, que al guardar nos generá el archivo .ui. Ver aquí
Aquí vemos los objetos que hemos utilizado en el código
Conclusión
Queda a disposición la plantilla, que puede servir como introducción y base para pequeños proyectos.
https://github.com/trenlr/public/tree/master/python_pyside
Espero que os sea de utilidad!