Saltar al contenido
🐍 Curso de Python
/

Módulo 3

Aplicaciones con Tkinter

Programas con ventanas, botones y formularios: cada componente visual explicado a fondo, con su colocación, sus eventos y tres aplicaciones completas.

📚 50 lecciones ⏱ 1266 min en total
  1. 1Qué es una interfaz gráficaCuándo una ventana es la respuesta correcta y cuándo no, qué es Tkinter por dentro y por qué es el punto de partida razonable.21 min
  2. 2Tu primera ventanaEl programa mínimo que abre una ventana, explicado línea por línea, y el patrón de tres pasos que se repite en todo el módulo.22 min
  3. 3El bucle de eventosPor qué una interfaz gráfica se programa al revés que un script, qué hace mainloop por dentro y por qué una función lenta congela la ventana.27 min
  4. 4Propiedades de la ventanaTítulo, tamaño, posición, icono, atributos y cierre controlado: todos los métodos de la clase Tk, con una plantilla de arranque al final.33 min
  5. 5El sistema de widgetsEl árbol de contenedores, las tres formas de dar opciones a un widget, cómo preguntarle cuáles acepta y lo que comparten todos.32 min
  6. 6Tk frente a ttkPor qué hay dos juegos de widgets, cuál está en cada uno, por qué ttk rechaza las opciones de aspecto y cómo se le cambia la cara con estilos.27 min
  7. 7Colores, fuentes y medidasCómo se nombra un color, cómo se define una fuente para que respete el sistema, y por qué width no significa lo mismo en dos widgets distintos.22 min
  8. 8El gestor packCómo razona pack repartiendo la cavidad de la ventana, sus nueve opciones, y la diferencia entre fill y expand que todo el mundo confunde.22 min
  9. 9El gestor gridLa rejilla de filas y columnas: sticky, las celdas combinadas y el peso, que es lo que decide quién crece al agrandar la ventana.20 min
  10. 10El gestor placeColocar por coordenadas exactas o proporcionales, por qué casi nunca conviene, y los tres casos en los que es la única respuesta.14 min
  11. 11Marcos y anidamientoEl widget invisible que estructura toda interfaz: por qué se anidan los marcos, cómo dividir una ventana en bloques y una función por bloque.17 min
  12. 12Diseños que se adaptanLa disciplina de que una ventana aguante cualquier tamaño: quién crece, cómo diagnosticar un redimensionado roto y qué mínimos poner.17 min
  13. 13La etiqueta: LabelEl widget que muestra texto y hace de print en una interfaz: las dos alineaciones que se confunden, el texto que se parte en varias líneas, el texto que cambia solo y las etiquetas que tiemblan.25 min
  14. 14El botón: ButtonEl widget que convierte una ventana en un programa: cómo se ata una función, cómo se le pasan argumentos sin caer en las dos trampas clásicas, cómo se deshabilita y cómo se prueba sin pulsarlo.22 min
  15. 15El campo de texto: EntryEl primer widget que guarda lo que escribe quien usa el programa: leerlo, rellenarlo, protegerlo, ponerlo de solo lectura y validarlo sin que la validación se desactive a tus espaldas.26 min
  16. 16El área de texto: TextEl widget más potente de Tkinter y el que tiene sus propias reglas: índices de línea y columna, el salto de línea que nunca pediste, etiquetas que dan formato, y deshacer sin que se lleve el contenido inicial.24 min
  17. 17La casilla de verificación: CheckbuttonEl widget de sí o no, y el tercer estado que nadie espera: por qué una casilla sin variable nace a medias, cómo se manejan grupos de opciones y cómo se hace un «seleccionar todo» que se entera de lo que pasa.19 min
  18. 18Los botones de radio: RadiobuttonElegir una opción entre varias: el grupo que se forma compartiendo una variable, el descuido que deja todos los botones sin marcar, y cuándo conviene un desplegable o una lista en su lugar.18 min
  19. 19El desplegable: ComboboxUn campo de texto con una lista colgando: la decisión entre dejar escribir o no, el índice que vale menos de lo que parece, y las listas que dependen de otra lista.21 min
  20. 20La lista: ListboxVer varias opciones a la vez y elegir una o muchas: los cuatro modos de selección, los índices que devuelve en vez de valores, y el descuido que hace que dos listas se desmarquen entre sí.23 min
  21. 21El selector numérico: SpinboxUn campo con dos flechas para subir y bajar: el rango que las flechas respetan y el teclado no, los decimales con su formato, y el selector que también sirve para texto.20 min
  22. 22El deslizador: ScaleElegir arrastrando en vez de escribiendo: el widget temático con doce opciones, el valor decimal que nunca pediste, y el único caso del bloque donde el widget clásico es claramente mejor.18 min
  23. 23La barra de progreso: ProgressbarContar lo que tarda: los dos modos y cuándo usar cada uno, el step que da la vuelta sin avisar, la variable que deja de hacer caso a value, y cómo trocear el trabajo con after para que la barra se mueva de verdad.21 min
  24. 24La barra de desplazamiento: ScrollbarEl widget que no funciona solo: las dos mitades de la conexión y los dos síntomas de olvidar una, por qué un Frame no se puede desplazar, y la receta del Canvas con lo que nadie te cuenta de la rueda del ratón.27 min
  25. 25El lienzo: CanvasEl widget donde dibujas tú: las nueve figuras y su sistema de coordenadas, los identificadores que fallan en silencio cuando la figura ya no está, y las etiquetas que convierten mil figuras en un grupo.32 min
  26. 26El lienzo interactivo: eventos, imágenes y animaciónHacer que el dibujo responda: atar eventos a figuras y qué eventos no acepta, traducir el píxel de la ventana a coordenada del lienzo, arrastrar con el ratón, y la trampa de las imágenes con su diagnóstico exacto.30 min
  27. 27La tabla: TreeviewEl widget de las tablas y los árboles: la columna cero que no está en la lista, los valores que vuelven con el tipo adivinado y destrozan un código postal, ordenar al pulsar la cabecera, y la edición de celdas que no existe.38 min
  28. 28Las pestañas: NotebookRepartir una interfaz en pestañas: el widget que debe ser padre de sus páginas, el select que devuelve un nombre y no un widget, las tres formas de esconder una pestaña, y el evento que salta antes de que tu programa exista.25 min
  29. 29Paneles y separadores: PanedWindow y SeparatorDivisiones que se arrastran: la regla exacta de weight, el sashpos que solo funciona cuando el widget ya mide algo, el panel que se puede encoger hasta desaparecer, y el separador de un píxel que no se ve.23 min
  30. 30El marco con título: LabelFrameEl widget que cierra la escala de separación, el labelwidget que convierte el título en una casilla, y el hallazgo que da de verdad trabajo: desactivar un marco no desactiva nada de lo que hay dentro.26 min
  31. 31La barra de menúsEl único widget que no va dentro de la ventana, el accelerator que no ata nada, el índice que vale None en un menú vacío, y el tearoff que desplaza todo lo demás.31 min
  32. 32Menús contextuales y barras de herramientasEl evento que evita adivinar el botón derecho, el tk_popup que no vuelve hasta que lo cierras, el grab que deja la interfaz muerta si te descuidas, y la barra de herramientas que no es un widget.26 min
  33. 33Las variables de controlQué es de verdad una StringVar, el fallo que la hace desaparecer a media ejecución, el IntVar que revienta con el campo vacío, y las cuatro cosas de trace_add que nadie cuenta.26 min
  34. 34Eventos y bindLos cuatro niveles por los que pasa un evento y el que no está en la cadena, el bind que borra el anterior sin avisar, los campos que valen '??' en vez de None, y el event_generate que no espera.24 min
  35. 35Teclado y ratón en detalleEl <Enter> que no es la tecla Enter, los ángulos que si faltan no dan error, el doble clic que dispara también el simple, y los modificadores que vienen como número.25 min
  36. 36Diálogos estándar con messageboxLa función que devuelve la cadena 'no' y hace que cualquier if sea cierto, la que devuelve tres cosas, la opción detail que casi nadie usa, y cuándo no hay que preguntar nada.21 min
  37. 37Diálogos de ficheros y de colorEl askcolor que devuelve un par y hace cierto el if al cancelar, los dos valores distintos que significan «he cancelado», el fichero que se queda abierto, y la opción que impide sobrescribir sin querer.23 min
  38. 38Ventanas secundarias y modalesLa ventana que parpadea en la esquina antes de que la coloques, el orden de once pasos de una modal, el grab anidado que rompe el de fuera, y por qué el resultado no lo devuelve wait_window.26 min
  39. 39Validación de formulariosEl validador que se olvida del return y apaga la validación para siempre, el error que habla de un booleano en vez de tu fallo, y el estado invalid que Tk gestiona solo y casi nadie aprovecha.24 min
  40. 40Organizar una aplicación en clasesLa deuda de treinta y seis lecciones de variables globales, el super() que si falta da un error que no dice nada, y el destroy que no se llama cuando cierras la ventana.22 min
  41. 41Separar la lógica de la interfazLa prueba objetiva de si lo has conseguido, las tres cosas que se escapan sin que te des cuenta, y la lógica que mueve una ventana y una terminal sin cambiar una línea.25 min
  42. 42Tareas largas sin congelar la ventanaPor qué se queda muerta, el update() que parece arreglarlo y es peor, el after que muere con su widget y el que no, y el hilo que toca un widget y revienta cuando le da la gana.28 min
  43. 43Preferencias que se recuerdan entre sesionesEl fichero que no debe impedir arrancar si está roto, el guardado que no puede dejarlo a medias, y la geometría guardada en un monitor que ya no está.27 min
  44. 44Imágenes con PhotoImage y PillowLa imagen que desaparece sin dar ningún error, los formatos que Tk sí y no entiende (con una sorpresa en Tk 9), el escalado que solo admite enteros, y la trampa que Pillow añade encima.26 min
  45. 45Empaquetar como ejecutable con PyInstallerLas preferencias que se borran en cada arranque sin que nadie se entere, el programa que no abre y no dice por qué, y el módulo que falta solo en el paquete.25 min
  46. 46Proyecto: un editor de textoUn editor completo juntando todo el módulo, con las tres partes que de verdad cuestan: la bandera de cambios sin guardar, el cierre que pregunta, y la búsqueda que no se cuelga.32 min
  47. 47Proyecto: un gestor de contactos con Treeview y SQLiteUna tabla que no es el almacén, una búsqueda que no confunde el porcentaje del usuario con un comodín, y un orden que pone la ñ donde le toca.29 min
  48. 48Proyecto: un panel de controlTres pestañas sobre la misma carpeta: una que mide cada segundo, una que trabaja en un hilo y se puede cancelar, y una que dibuja el historial. Y el apagado ordenado de las tres.39 min
  49. 49Notificaciones del sistema, el badge y la bandejaAvisar al usuario cuando la ventana no está delante: la bandeja que siempre funciona, el globo rojo con la cuenta, y cómo saber cuál de los avisos ha pulsado.40 min
  50. 50Modo claro y modo oscuroSaber en qué tema está el sistema sin preguntarle al sistema, enterarse de que ha cambiado, y repintar lo único que no se adapta solo: lo que has dibujado tú.35 min