Conversión de archivos UI a código Python con PyUIC5

Conversión de archivos UI a código Python con PyUIC5

PyUIC5 es una herramienta que se utiliza para convertir archivos de interfaz de usuario (UI) de Qt Designer a código Python. Esta herramienta se distribuye junto con PyQt5, el framework de desarrollo de aplicaciones gráficas para Python.

Requisitos

Para utilizar PyUIC5, es necesario tener instalado PyQt5. Puedes instalar PyQt5 con el siguiente comando:

pip install PyQt5

Cómo convertir un archivo UI a código Python

Para convertir un archivo UI a código Python, utiliza el siguiente comando:

pyuic5 -x <nombre_archivo_ui> -o <nombre_archivo_py>

Por ejemplo, para convertir un archivo llamado mi_interfaz.ui a código Python llamado mi_interfaz.py, utilizarías el siguiente comando:

pyuic5 -x mi_interfaz.ui -o mi_interfaz.py

Estructura del archivo Python generado

El archivo Python generado por PyUIC5 contiene una clase que representa la interfaz de usuario. Esta clase hereda de la clase QMainWindow de Qt.

La clase generada tiene los siguientes atributos:

  • objectName(): El nombre de la clase.
  • ui(): Un objeto que representa la interfaz de usuario.
  • setupUi(): El método que establece la interfaz de usuario.

Ejemplo

El siguiente es un ejemplo de un archivo UI llamado mi_interfaz.ui:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>300</width>
    <height>200</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QLabel" name="label">
   <property name="geometry">
    <rect>
     <x>100</x>
     <y>50</y>
     <width>100</width>
     <height>25</height>
    </rect>
   </property>
   <property name="text">
    <string>Hola mundo</string>
   </property>
  </widget>
 </widget>
</ui>

El siguiente es el código Python generado por PyUIC5:

Python
import sys

from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.label = self.ui.label
        self.label.setText("Hola mundo")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

Este código crea una ventana con un label que muestra el texto «Hola mundo».

Problemas comunes

  • Si tienes problemas para convertir un archivo UI a código Python, asegúrate de que PyQt5 está instalado correctamente.
  • Si el archivo Python generado no funciona correctamente, asegúrate de que la interfaz de usuario está bien diseñada.

Conclusión

PyUIC5 es una herramienta útil para convertir archivos UI de Qt Designer a código Python. Esta herramienta te permite crear aplicaciones gráficas rápidamente con Python.