Aplicaciones de escritorio con Qt y Python

Development

Curso
Especialización en Python (EOI)
Módulo
Aplicaciones de escritorio
Tecnologías
PyQt5, Qt5, Python

Desarrollo de aplicaciones de escritorio usando PyQt5

El proyecto de aplicaciones de escritorio fue uno de los que más horas me llevó realizar y uno con los que más aprendí.

Qt es un framework multiplataforma orientado a objetos ampliamente usado para desarrollar programas que utilicen interfaz gráfica de usuario, escrito en C++.

Aplicaciones de escritorio - Qt5
Captura de pantalla del proyecto Pynotepad

Una de las mayores complejidades fue entender bien la documentación, ya que tenía todas las explicaciones en lenguaje C++ y se hacía difícil de comprender para alguien ajeno a ese lenguaje de programación. Usando documentación de varios sitios web y mediante prueba y error, fui desarrollando la aplicación.

La siguiente complicación fue refactorizar el código, ya que tenía un solo archivo con cientos de líneas de código. Tuve que formarme para aprender a hacer las importaciones entre distintos archivos de tu código para que funcionara correctamente. ¡Estuve muy satisfecho del resultado!

Puedes revisar el código fuente del proyecto en mi github.

Proyecto Desktop Apps

 

Si te ha gustado este proyecto, puedes echarle un ojo al proyecto realizado en Django.

 

Aplicaciones de escritorio: Instrucciones del proyecto

La tarea consiste en extender la aplicación gráfica que trabajamos en clase (pynotepad) y añadirle un explorador de ficheros interactivo a la izquierda del editor principal.

Referencia

La aplicación deberá tener un aspecto similar a este; nótese que las principales clases utilizadas están resaltadas en rojo:

PyNotepad con explorador de ficheros

En este caso se ha optado por utilizar las capabilidades organizativas de QMainWindow para añadir el QTreeView como un QDockWidget, aunque no es estrictamente necesario utilizar estos mismos componentes; puede hacerse también con un QHBoxLayout organizando horizontalmente los widgets.

Requisitos mínimos

  • Hacer doble-click sobre un fichero debe tener el efecto de abrirlo en el editor central. Doble-click sobre un directorio debe expandir o contraer la vista de ese directorio (ese comportamiento ya está implementado por defecto usando QTreeView en conjunción con QFileSystemModel)

Mejoras opcionales

  • Menú contextual al hacer click derecho en el QTreeView
    • Mostrar algunas opciones extras aquí (cuantas más, mejor); por ejemplo abrir fichero, renombrar, borrar o copiar ruta en el portapapeles. Dichas acciones deben estar realmente implementadas

Criterios de evaluación

En orden de importancia, se evaluará la entrega acorde a los siguientes puntos:

  1. Funcionalidad: La aplicación debe ejecutarse sin errores y hacer lo que se le supone. Se espera también cierta estabilidad frente a acciones “no-comunes” por parte del usuario, como por ejemplo pulsaciones de teclas inesperadas o redimensionado de la ventana; en general, con aplicaciones de este tipo es una buena práctica guiarse por el POLA
  2. Mejoras opcionales: Se valorarán todas aquellas mejoras que se implementen más allá de los requisitos mínimos
  3. Organización de código: A medida que se vayan implementando funcionalidades, la organización básica de “todo en un fichero” y “todo objetos globales” es cada vez más problemática. Investigar maneras más avanzadas de gestionar el código; recomiendo revisar el código fuente de algunas aplicaciones de código abierto que usan PyQt, como por ejemplo Anki o Calibre
Esta web usa cookies propias y de terceros para su correcto funcionamiento. Al hacer click en el botón de aceptar, acepta su uso.    Más información
Privacidad