Trabajando con Python y QT, ejemplo de uso y plantilla con PySide

2 min read

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

        1. 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
          
        2. 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
          

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!