Módulo 15: Proyecto Final — Portfolio de Diseño
Aplica todo lo aprendido creando un proyecto completo y profesional
Aplica todo lo aprendido creando un proyecto completo y profesional
---
Objetivos de Aprendizaje
Al finalizar este módulo serás capaz de:
- Integrar todos los conceptos del curso en un proyecto real
- Diseñar una aplicación completa con Main Window, diálogos y formularios
- Aplicar temas visuales coherentes en toda la aplicación
- Crear una interfaz profesional lista para ser usada por un programador
- Evaluar tu propio trabajo con una rúbrica profesional
- Presentar tu portfolio de diseños en Qt Designer
---
15.1 Descripción del Proyecto
Aplicación de Gestión de Proyectos Creativos
Vas a diseñar la interfaz completa de una aplicación para gestionar proyectos creativos. Esta aplicación simula una herramienta tipo "Trello + Figma" para diseñadores que necesitan organizar sus proyectos.
🎨 ANALOGÍA DEL DISEÑO
>
Este proyecto es como tu examen final de diseño: integra todo lo que has aprendido en una pieza completa que puedes mostrar en tu portfolio.
---
15.2 Requisitos del Proyecto
Parte A: Ventana Principal (Main Window)
┌─────────────────────────────────────────────────────────────────┐
│ [MenuBar] Archivo Edición Ver Proyecto Herramientas Ayuda │
├─────────────────────────────────────────────────────────────────┤
│ [Toolbar] 📁 📂 💾 ✏️ 🗑️ 🔍 📊 ⚙️ │
├──────────────┬──────────────────────────────────────┬───────────┤
│ [Dock] │ │ [Dock] │
│ Proyectos │ ÁREA CENTRAL │ Propied. │
│ │ │ │
│ [Tree] │ [Tab Widget] │ [Form] │
│ 📁 Proyecto1│ ┌──────────────────────────────┐ │ Pos X: │
│ 📄 Diseño │ │ [Diseño] [Recursos] [Calend.]│ │ Pos Y: │
│ 📄 Assets │ │ │ │ Ancho: │
│ 📁 Proyecto2│ │ [Contenido de la pestaña] │ │ Alto: │
│ 📄 Diseño │ │ │ │ Color: │
│ │ │ │ │ Fuente: │
│ │ └──────────────────────────────┘ │ Opacidad:│
│ │ │ ━━━●━━━ │
│ │ │ │
├──────────────┴──────────────────────────────────────┴───────────┤
│ [StatusBar] Listo | 3 proyectos | 12 tareas | UTF-8 │
└─────────────────────────────────────────────────────────────────┘
Requisitos específicos del Main Window:
- Menu Bar completo:
- Archivo: Nuevo Proyecto (Ctrl+N), Abrir (Ctrl+O), Guardar (Ctrl+S), Guardar Todo (Ctrl+Shift+S), Separador, Exportar, Separador, Salir (Ctrl+Q)
- Edición: Deshacer (Ctrl+Z), Rehacer (Ctrl+Y), Separador, Cortar (Ctrl+X), Copiar (Ctrl+C), Pegar (Ctrl+V), Separador, Seleccionar Todo (Ctrl+A)
- Ver: Zoom In (Ctrl++), Zoom Out (Ctrl+-), Ajustar (Ctrl+0), Separador, Pantalla Completa (F11), Separador, Mostrar/Ocultar Panel Izquierdo, Mostrar/Ocultar Panel Derecho
- Proyecto: Nuevo Proyecto, Importar Assets, Separador, Configuración del Proyecto, Separador, Cerrar Proyecto
- Herramientas: Preferencias (Ctrl+,), Separador, Limpiar Caché
- Ayuda: Documentación (F1), Atajos de Teclado, Separador, Acerca de
- Toolbar con iconos:
- Al menos 8 acciones con iconos SVG
- Separadores entre grupos de acciones
- iconSize: 24x24
- toolButtonStyle: IconOnly
- Dock Widget "Proyectos" (izquierda):
- Tree Widget con estructura de proyectos
- Título: "Explorador de Proyectos"
- allowedAreas: LeftDockWidgetArea
- Contiene al menos 2 proyectos con sub-items
- Dock Widget "Propiedades" (derecha):
- Form Layout con campos de propiedades
- Título: "Propiedades"
- allowedAreas: RightDockWidgetArea
- Campos: Posición X, Posición Y, Ancho, Alto, Color, Fuente, Opacidad (Slider)
- Central Widget con Tab Widget:
- Pestaña "Diseño": Frame grande como área de trabajo (con Grid Layout de fondo simulando una cuadrícula)
- Pestaña "Recursos": List Widget en modo IconMode con recursos del proyecto
- Pestaña "Calendario": Calendar Widget con eventos marcados
- Status Bar:
- Label "Listo"
- Label "3 proyectos"
- Label "12 tareas"
- Label "UTF-8"
---
Parte B: Diálogo "Nuevo Proyecto"
┌─────────────────────────────────────────┐
│ NUEVO PROYECTO │
├─────────────────────────────────────────┤
│ │
│ ┌─ Información del Proyecto ────────┐ │
│ │ Nombre:* [_______________] │ │
│ │ Cliente: [_______________] │ │
│ │ Tipo: [▼ Branding ] │ │
│ │ Descripción: │ │
│ │ ┌─────────────────────────────┐ │ │
│ │ │ Describe el proyecto... │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────┘ │ │
│ └───────────────────────────────────┘ │
│ │
│ ┌─ Fechas ─────────────────────────┐ │
│ │ Inicio: [__/__/____] │ │
│ │ Entrega: [__/__/____] │ │
│ └──────────────────────────────────┘ │
│ │
│ ┌─ Deliverables ───────────────────┐ │
│ │ ☐ Logo │ │
│ │ ☐ Manual de marca │ │
│ │ ☐ Papelería │ │
│ │ ☐ Redes sociales │ │
│ │ ☐ Sitio web │ │
│ │ ☐ Otro: [_________________] │ │
│ └──────────────────────────────────┘ │
│ │
│ [Cancelar] [Crear Proyecto]│
└─────────────────────────────────────────┘
---
Parte C: Diálogo "Preferencias"
┌─────────────────────────────────────────┐
│ PREFERENCIAS │
├─────────────────────────────────────────┤
│ [General] [Apariencia] [Atajos] [Avanz.]│
├─────────────────────────────────────────┤
│ │
│ ┌─ General ────────────────────────┐ │
│ │ Idioma: [▼ Español ] │ │
│ │ Auto-guardado: cada [5] minutos │ │
│ │ ☐ Iniciar con el sistema │ │
│ │ ☐ Abrir último proyecto al inicio│ │
│ └──────────────────────────────────┘ │
│ │
│ ┌─ Atajos de Teclado ──────────────┐ │
│ │ Acción │ Atajo │ │
│ │ ────────────────┼────────────── │ │
│ │ Nuevo Proyecto │ Ctrl+N │ │
│ │ Guardar │ Ctrl+S │ │
│ │ Deshacer │ Ctrl+Z │ │
│ │ Buscar │ Ctrl+F │ │
│ │ Pantalla compl. │ F11 │ │
│ └──────────────────────────────────┘ │
│ │
│ [Restaurar] [Aplicar] [Aceptar] │
└─────────────────────────────────────────┘
---
Parte D: Estilo Visual Completo
Paleta de colores
| Elemento | Color | Uso |
|---|---|---|
| ---------- | ------- | ----- |
| **Fondo principal** | `#1a1a2e` | Fondo del Main Window |
| **Fondo secundario** | `#2d2d3d` | Frames, campos de entrada |
| **Color primario** | `#41CD52` | Botones principales, acentos |
| **Color secundario** | `#1D84BC` | Links, elementos informativos |
| **Color de alerta** | `#FF6B6B` | Errores, eliminaciones |
| **Texto principal** | `#ffffff` | Títulos, texto importante |
| **Texto secundario** | `#e0e0e0` | Labels, texto normal |
| **Texto terciario** | `#a0a0a0` | Texto de ayuda, placeholders |
| **Bordes** | `#444` | Bordes de campos y contenedores |
Tipografía
| Elemento | Fuente | Tamaño | Peso |
|---|---|---|---|
| ---------- | -------- | -------- | ------ |
| Título de ventana | Segoe UI | 18pt | Bold |
| Títulos de sección | Segoe UI | 14pt | Bold |
| Labels de campos | Segoe UI | 12pt | Normal |
| Texto de cuerpo | Segoe UI | 12pt | Normal |
| Texto pequeño | Segoe UI | 10pt | Normal |
| Botones | Segoe UI | 12pt | Bold |
---
15.3 Guía Paso a Paso
Fase 1: Estructura Principal (30-40 min)
- Crea un Main Window
- Configura el
windowTitlea "CreativeStudio - Gestión de Proyectos" - Configura el tamaño inicial a 1200x800
- Crea todas las Actions necesarias en el Action Editor
- Crea el menú completo con todos los items y atajos
- Agrega las Actions a la Toolbar
- Agrega los Dock Widgets laterales
- Configura el Central Widget con el Tab Widget
- Configura la Status Bar
Fase 2: Contenido de las Pestañas (20-30 min)
- Pestaña "Diseño":
- Frame grande como área de trabajo
- Aplica un estilo de cuadrícula con styleSheet
- minimumSize: 600x400
- Pestaña "Recursos":
- List Widget en modo IconMode
- Agrega items de ejemplo: "Logo.png", "Paleta colores", "Tipografía", "Mockup.psd"
- iconSize: 48x48
- Pestaña "Calendario":
- Calendar Widget
- firstDayOfWeek: Monday
- gridVisible: true
Fase 3: Diálogos (20-30 min)
- Crea el diálogo "Nuevo Proyecto" en un archivo
dialog_nuevo_proyecto.ui - Crea el diálogo "Preferencias" en un archivo
dialog_preferencias.ui - Configura todos los campos, layouts y estilos
Fase 4: Estilizado (20-30 min)
- Define tu paleta de colores
- Aplica styleSheet al Main Window para estilos globales
- Estiliza botones, campos de entrada y contenedores
- Agrega iconos a los botones de la toolbar
- Estiliza los Dock Widgets
- Estiliza el Tab Widget
- Estiliza la Status Bar
Fase 5: Interactividad (10-15 min)
- Configura Signals y Slots para el botón "Salir" -> cierra la ventana
- Configura Signals y Slots para los botones de los diálogos
- Conecta el slider de opacidad al valor numérico
- Verifica que todo funcione correctamente
---
15.4 Rúbrica de Evaluación
Criterios de Evaluación
| Criterio | Básico (1 pt) | Bueno (2 pts) | Excelente (3 pts) | Puntuación |
|---|---|---|---|---|
| ---------- | --------------- | --------------- | ------------------- | ------------ |
| **Layouts** | Algunos widgets sin layout | Todos los contenedores tienen layout | Layouts anidados perfectamente organizados y responsivos | /3 |
| **Nomenclatura** | Algunos nombres descriptivos | La mayoría de widgets bien nombrados | Todos los widgets con nombres claros y consistentes | /3 |
| **Estilos** | Estilos básicos aplicados | Estilos coherentes en toda la interfaz | Estilos profesionales con efectos hover, focus y transiciones | /3 |
| **Funcionalidad** | Algunas conexiones signal/slot | Las conexiones principales funcionan | Todas las conexiones funcionan correctamente | /3 |
| **Responsive** | Se ve bien en un tamaño | Se adapta a la mayoría de tamaños | Se adapta perfectamente a cualquier tamaño | /3 |
| **Accesibilidad** | Contraste básico | Buen contraste y tamaños legibles | Excelente accesibilidad con tooltips y jerarquía visual | /3 |
| **Menús** | Menú básico con pocos items | Menú completo con atajos | Menú completo con iconos, atajos y submenús | /3 |
| **Toolbars** | Toolbar básica | Toolbar con iconos | Toolbar con iconos, tooltips y separadores | /3 |
| **Dock Widgets** | Un dock widget básico | Dos dock widgets funcionales | Dock widgets con contenido útil y configurados correctamente | /3 |
| **Diálogos** | Un diálogo básico | Dos diálogos funcionales | Diálogos completos con validación visual y estilos | /3 |
| **Creatividad** | Diseño básico | Diseño atractivo | Diseño excepcional y profesional | /3 |
Escala de Calificación
| Puntuación | Calificación | Descripción |
|---|---|---|
| ------------ | -------------- | ------------- |
| 30-33 | ⭐⭐⭐ Excelente | Diseño profesional listo para producción |
| 24-29 | ⭐⭐ Bueno | Diseño funcional con detalles por mejorar |
| 18-23 | ⭐ Aceptable | Diseño funcional pero necesita trabajo |
| 11-17 | Regular | Diseño incompleto o con problemas |
| 0-10 | Insuficiente | Necesita rehacer la mayoría del trabajo |
---
15.5 Entrega del Proyecto
Archivos a entregar
proyecto_final/
├── main_window.ui # Ventana principal
├── dialog_nuevo_proyecto.ui # Diálogo nuevo proyecto
├── dialog_preferencias.ui # Diálogo preferencias
├── recursos/
│ ├── recursos.qrc
│ ├── iconos/ # Iconos SVG
│ └── imagenes/ # Imágenes
└── styles/
└── tema_oscuro.qss # Hoja de estilos (opcional)
Checklist de entrega
- [ ] Todos los archivos .ui se abren sin errores en Qt Designer
- [ ] Todos los widgets tienen nombres descriptivos
- [ ] Todos los contenedores tienen layouts aplicados
- [ ] El Main Window tiene menú, toolbar, docks, central widget y status bar
- [ ] Los diálogos tienen campos, layouts y botones funcionales
- [ ] Los estilos son coherentes en toda la aplicación
- [ ] La vista previa funciona correctamente
- [ ] Los Signals/Slots están configurados
- [ ] Los recursos están incluidos
---
15.6 Próximos Pasos
¡Felicidades! Has completado el curso. Ahora tienes las herramientas para diseñar interfaces profesionales para aplicaciones PySide6.
Siguientes pasos recomendados:
| Paso | Descripción | Recurso |
|---|---|---|
| ------ | ------------- | --------- |
| **Aprender Python básico** | Para poder cargar tus archivos .ui y agregar lógica | [Python.org Tutorial](https://docs.python.org/3/tutorial/) |
| **Explorar Custom Widgets** | Widgets modernos y animados | [Custom Widgets Docs](https://qtcustomwidgets.spinncode.com/) |
| **Estudiar QSS avanzado** | Profundiza en Qt Style Sheets para temas completos | [QSS Reference](https://doc.qt.io/qt-6/stylesheet-reference.html) |
| **Practicar con proyectos reales** | Diseña interfaces para aplicaciones que uses frecuentemente | Tu imaginación |
| **Colaborar con programadores** | Ofrece tus servicios de diseño UI para apps de escritorio | Plataformas freelance |
| **Crear un portfolio** | Guarda screenshots de tus diseños .ui y compártelos | Behance, Dribbble, GitHub |
💡 CONSEJO FINAL
>
Recuerda: Qt Designer es tu herramienta de diseño. Así como un diseñador gráfico no necesita saber imprimir para crear un poster, tú no necesitas saber programar para crear interfaces. Tu trabajo es diseñar la experiencia visual; el programador se encarga de darle vida con código.
---
Evaluación Final
Preguntas de repaso general
- ¿Cuáles son los 5 paneles principales de Qt Designer?
- ¿Qué es un layout y por qué es esencial?
- ¿Cuál es la diferencia entre un Dialog y un Main Window?
- ¿Cómo creas una conexión entre un botón y una acción sin código?
- ¿Qué es un archivo .ui y cómo se usa en una aplicación Python?
- ¿Cuáles son las 3 formas de cargar un archivo .ui en Python?
- ¿Qué es un Signal y qué es un Slot?
- ¿Cómo aplicas un tema visual coherente a toda tu interfaz?
- ¿Qué widget usarías para crear una interfaz con pestañas?
- ¿Cuál es la convención de nombres recomendada para widgets?
---
Módulo anterior: ← [Módulo 14: Mejores Prácticas](13-mejores-practicas.md)
¡Has completado el curso! 🎉
Escribe tus respuestas y luego presiona el botón para comparar con las respuestas correctas.
Ejercicio Final: Proyecto de Gestión de Proyectos Creativos
Módulos 12-15: Proyecto Integrador
---
Objetivo
Crear una aplicación completa de gestión de proyectos creativos que integre todos los conceptos del curso.
---
Parte A: Ventana Principal (main_window.ui)
Estructura requerida:
- Main Window de 1200x800 píxeles
- Menu Bar completo (Archivo, Edición, Ver, Proyecto, Herramientas, Ayuda)
- Toolbar con al menos 8 acciones con iconos
- Dock Widget "Proyectos" (izquierda) con Tree Widget
- Dock Widget "Propiedades" (derecha) con Form Layout (Pos X, Pos Y, Ancho, Alto, Color, Opacidad con Slider)
- Central Widget con Tab Widget de 3 pestañas:
- "Diseño": Frame grande como área de trabajo
- "Recursos": List Widget en modo IconMode
- "Calendario": Calendar Widget
- Status Bar con 4 labels informativos
- Tema oscuro coherente en toda la aplicación
---
Parte B: Diálogo Nuevo Proyecto (dialog_nuevo_proyecto.ui)
Estructura requerida:
- Dialog with Buttons Bottom de 500x550 píxeles
- Group Box "Información del Proyecto":
- Nombre (obligatorio), Cliente, Tipo (Combo Box), Descripción (Text Edit)
- Group Box "Fechas":
- Inicio (Date Edit), Entrega (Date Edit)
- Group Box "Deliverables":
- 5 Check Boxes (Logo, Manual de marca, Papelería, Redes sociales, Sitio web)
- Line Edit para "Otro"
- Botones OK/Cancel incluidos
- Tema oscuro coherente
---
Parte C: Diálogo Preferencias (dialog_preferencias.ui)
Estructura requerida:
- Dialog with Buttons Bottom de 500x400 píxeles
- Tab Widget con 4 pestañas:
- "General": Idioma, auto-guardado, opciones de inicio
- "Apariencia": Tema, fuente, tamaño
- "Atajos": Table Widget con acciones y atajos
- "Avanzado": Opciones avanzadas de configuración
- Botones: Restaurar, Aplicar, Aceptar
---
Requisitos de Estilo
Paleta de colores:
| Elemento | Color |
|---|---|
| ---------- | ------- |
| Fondo principal | `#1a1a2e` |
| Fondo secundario | `#2d2d3d` |
| Color primario | `#41CD52` |
| Color secundario | `#1D84BC` |
| Color de alerta | `#FF6B6B` |
| Texto principal | `#ffffff` |
| Texto secundario | `#e0e0e0` |
| Bordes | `#444` |
Tipografía:
- Títulos: 18-22pt, Bold
- Subtítulos: 14-16pt, Bold
- Labels: 12-13pt, Normal
- Botones: 12pt, Bold
---
Instrucciones de Desarrollo
Fase 1: Estructura Principal (30-40 min)
- Crea el Main Window con todos los menús y acciones
- Configura la toolbar con iconos
- Agrega los dock widgets
- Configura el central widget con tab widget
- Configura la status bar
Fase 2: Contenido (20-30 min)
- Llena cada pestaña del tab widget con contenido
- Configura el tree widget del dock izquierdo
- Configura el form layout del dock derecho
Fase 3: Diálogos (20-30 min)
- Crea el diálogo "Nuevo Proyecto"
- Crea el diálogo "Preferencias"
Fase 4: Estilizado (20-30 min)
- Aplica el tema oscuro global
- Estiliza todos los widgets
- Agrega efectos hover y focus
Fase 5: Interactividad (10-15 min)
- Configura signals/slots básicos
- Conecta botones de cierre
- Verifica todo en vista previa
---
Rúbrica de Evaluación
| Criterio | Básico (1 pt) | Bueno (2 pts) | Excelente (3 pts) | Puntos |
|---|---|---|---|---|
| ---------- | --------------- | --------------- | ------------------- | -------- |
| **Layouts** | Algunos sin layout | Todos con layout | Anidados y responsivos | /3 |
| **Nomenclatura** | Algunos descriptivos | La mayoría bien nombrados | Todos claros y consistentes | /3 |
| **Estilos** | Básicos | Coherentes | Profesionales con efectos | /3 |
| **Funcionalidad** | Algunas conexiones | Principales funcionan | Todas funcionan | /3 |
| **Responsive** | Un tamaño | La mayoría de tamaños | Cualquier tamaño | /3 |
| **Accesibilidad** | Contraste básico | Buen contraste | Excelente con tooltips | /3 |
| **Menús** | Básico | Completo con atajos | Con iconos y submenús | /3 |
| **Toolbars** | Básica | Con iconos | Con tooltips y separadores | /3 |
| **Dock Widgets** | Uno básico | Dos funcionales | Con contenido útil | /3 |
| **Diálogos** | Uno básico | Dos funcionales | Completos con estilos | /3 |
| **Creatividad** | Básico | Atractivo | Excepcional | /3 |
Total: /33 puntos
| Puntuación | Calificación |
|---|---|
| ------------ | -------------- |
| 30-33 | ⭐⭐⭐ Excelente |
| 24-29 | ⭐⭐ Bueno |
| 18-23 | ⭐ Aceptable |
| 11-17 | Regular |
| 0-10 | Insuficiente |
---
Archivos a Entregar
proyecto_final/
├── main_window.ui
├── dialog_nuevo_proyecto.ui
├── dialog_preferencias.ui
├── recursos/
│ ├── recursos.qrc
│ ├── iconos/
│ └── imagenes/
└── styles/
└── tema_oscuro.qss
---
Checklist Final
- [ ] Main Window con menú completo (6 menús)
- [ ] Toolbar con al menos 8 iconos
- [ ] Dock Widget izquierdo con Tree Widget
- [ ] Dock Widget derecho con Form Layout
- [ ] Tab Widget con 3 pestañas con contenido
- [ ] Status Bar con información
- [ ] Diálogo Nuevo Proyecto completo
- [ ] Diálogo Preferencias con 4 pestañas
- [ ] Tema oscuro coherente en todos los archivos
- [ ] Todos los widgets renombrados
- [ ] Layouts aplicados a todos los contenedores
- [ ] Signals/Slots configurados
- [ ] Vista previa funciona correctamente en todos los archivos
- [ ] Se adapta al redimensionar
---
¡Felicidades!
Si has completado este proyecto, has dominado Qt Designer para PySide6. Tu portfolio de diseños está listo para ser compartido con programadores o clientes.
Próximos pasos:
- Aprende Python básico para cargar tus .ui
- Explora Custom Widgets para interfaces más modernas
- Crea más proyectos para practicar
- Comparte tu trabajo en Behance, Dribbble o GitHub