Metodología - Jose05M/TE2003B_PyQt GitHub Wiki
La metodología que se usó en este proyecto fue la siguiente:
Se identificaron los requerimientos del proyecto, cuyo propósito era crear una aplicación con interfaz gráfica que:
- Permitiera al usuario ingresar un nombre de archivo y texto.
- Escribiera el contenido ingresado a un archivo.
- Ingresara el numero de veces (lineas) que se repite el texto.
- Mostrar el número de vocales y consonantes totales del archivo.
-
Preparación del entorno de trabajo
- Se verificó que la Raspberry Pi 4 estuviera correctamente alimentada y funcional.
- Se instalaron las herramientas necesarias en la Raspberry Pi:
Descargas necesarias
-
Se descargó la aplicación de Qt5 Designer desde: Download PyQt5, la cual se utiliza para realizar la interfaz gráfica que será importada. También se puede instalar PyQt5 utilizando los siguientes comandos:
pip3 install PyQt5
pip3 install pyqt5-tools
- Esto asume que se tiene Python instalado. En caso de no ser así, se recomienda visitar el siguiente sitio para su instalación: Install Python
- Módulos
Se deben tener conocimientos básicos de los siguientes módulos de PyQt5, ya que son importantes para comprender el funcionamiento de la interfaz gráfica generada por Qt Designer:
-
QtCore
– Clases principales no gráficas usadas por otros módulos. -
QtGui
– Componentes para la interfaz gráfica de usuario. -
QtMultimedia
– Clases para programación multimedia de bajo nivel. -
QtNetwork
– Clases para programación de red. -
QtOpenGL
– Clases con soporte para OpenGL. -
QtScript
– Clases para ejecutar scripts de Qt. -
QtSql
– Clases para integración de bases de datos SQL. -
QtSvg
– Clases para mostrar archivos SVG. -
QtWebKit
– Clases para renderizar y editar HTML. -
QtXml
– Clases para manejar XML. -
QtWidgets
– Clases para crear interfaces clásicas de escritorio. -
QtDesigner
– Clases para extender Qt Designer.
-
Diseño en Qt Designer
Utilizando Qt Designer, se diseñó la interfaz gráfica de usuario (GUI), compuesta por:
- Tres campos de entrada (
QLineEdit
) para el nombre del archivo, texto a escribir, y número de líneas. - Tres campos de mensaje (
QTextBrowser
) como etiquetas descriptivas. - Un botón (
QPushButton
) para ejecutar la acción. - Dos etiquetas (
QLabel
) para mostrar resultados: número de vocales y consonantes.
- Importar interfaz gráfica de PyQt Designer al código en Python
Para facilitar el desarrollo, se puede convertir el archivo .ui
, del diseño generado en Qt Designer a un archivo .py
mediante el siguiente comando:
pyuic5 -x nombre.ui -o nombre.py
- En nuestro caso, la interfaz
ui4.ui
fue convertida al archivoui4.py
.
-
Desarrollo del backend:
-
Una vez importada la interfaz gráfica a Python
ui4.py
, se crea un nuevo archivo.py
(en nuestro casoAct4.py
) donde se programa la lógica que hará funcionar la interfaz, es decir, el backend. -
Para conectar ambos archivos, se debe importar el archivo generado por PyQt con la siguiente línea:
from ui4 import *
Nota: Ambos archivos deben estar en la misma carpeta para asegurar que la importación funcione correctamente
-
Se utilizaron:
- Funciones para escribir texto en archivos.
- Funciones para leer el archivo y contar líneas, vocales y consonantes.
- Conexión del botón de la GUI con estas funciones utilizando señales y slots de PyQt5.
Verificación de la interfaz:
- Se ejecuta el programa en la Raspberry Pi 4.
- La interfaz gráfica será visible y funcional.
- Se valida el funcionamiento general de la interfaz, comprobando que responde a los eventos programados.
-
Nombre del archivo: un texto (
string
) que el usuario puede ingresar a través del teclado de la computadora utilizando un campo de entrada (QLineEdit
). Este valor representa el nombre del archivo en el cual se escribirá el contenido proporcionado por el usuario. -
Texto a escribir: es un dato de tipo texto (
string
) que el usuario introduce mediante un campo de entrada (QLineEdit
). Este contenido representa la información que se desea guardar dentro del archivo especificado. -
Número de líneas: es un campo de entrada (
QLineEdit
) de tipo número entero (int
). Su propósito es que el usuario ingrese un número de veces que se repetirá el texto ingresado.
-
Número de vocales: es un valor mostrado mediante una etiqueta (
QLabel
) y corresponde a un número entero (int
). Representa la cantidad total de vocales encontradas en el contenido del archivo. -
Número de consonantes: es un valor mostrado a través de una etiqueta (
QLabel
) y corresponde a un número entero (int
). Indica la cantidad total de consonantes encontradas en el contenido del archivo.
Las condiciones de operación del experimento son aquellas que se necesitan para operar y ejecutar de manera correcta el programa realizado. Estas son las siguientes:
-
Se debe tener instaladas las herramientas necesarias para la ejecución del programa:
- Python 3
- PyQt5
- pyuic5 (para convertir archivos
.ui
a código Python)
-
El sistema debe contar con un entorno gráfico funcional para mostrar la interfaz de usuario.
-
Al ingresar un texto, este deber ser simple que no contenga signos de puntuación, caracteres especiales ni letras acentuadas.
-
Se requiere acceso de escritura y lectura en el directorio donde se ejecuta el programa, ya que se crean y modifican archivos de texto.
-
El comando para ejecutar el script de Python:
$ python Act4.py
-
Se necesita acceso a la terminal donde se ejecutará el programa.
-
El archivo
.ui
diseñado con Qt Designer debe ser convertido a.py
utilizando el siguiente comando:pyuic5 nombre.ui -o nombre.py
- Dispositivo: Raspberry Pi 4
- Sistema operativo: Raspbian Raspberry Pi OS (Legacy, 32-bit) Full, Debian Bullseye.
- Modo del sistema operativo: 32 bits
- Arquitectura del procesador: ARMv8
- Lenguaje usado en Raspberry: Python 3
- Permisos de escritura: El programa debe tener permisos para crear y modificar archivos en el directorio especificado.
-
Formato de entrada válido:
- El campo de nombre de archivo no debe estar vacío ni contener caracteres especiales no permitidos por el sistema operativo.
- El texto ingresado debe ser alfabético o contener caracteres válidos para evitar errores en el análisis.
- Ubicación de archivos: Los archivos generados se almacenan en el mismo directorio donde se ejecuta el programa.
-
Librerías empleadas:
PyQt5
1,sys
2,os
3. - Modo de ejecución: Interactivo, mediante GUI.
Se realizaron pruebas funcionales para comprobar el correcto funcionamiento de cada parte del sistema:
- Escritura en archivo.
- Lectura del número de líneas.
- Cálculo de vocales y consonantes.
Se validaron los resultados con distintos textos y nombres de archivo para asegurar estabilidad.
Se aplicaron estilos personalizados (CSS) para mejorar la presentación visual del programa, asegurando coherencia en los colores, tipografía y alineación.
1 PyQt5
Es un conjunto de módulos de Python que permiten crear interfaces gráficas de usuario (GUI) usando las herramientas de Qt. Permite construir ventanas, botones, campos de texto, etiquetas y más. Se utilizó para diseñar e implementar la interfaz gráfica del programa.
2 sys
es una librería estándar de Python que proporciona acceso a variables y funciones del sistema. Se usa, por ejemplo, para controlar argumentos pasados por consola o para cerrar correctamente la aplicación con sys.exit()
.
3 os
También es una librería estándar de Python. Proporciona funciones para interactuar con el sistema operativo, como manipular rutas de archivos, comprobar la existencia de archivos o directorios, y ejecutar comandos del sistema. En el proyecto, se puede usar para verificar si un archivo existe o para crear nuevas rutas.