{"id":167190,"date":"2023-04-11T10:14:00","date_gmt":"2023-04-11T09:14:00","guid":{"rendered":"https:\/\/liora.io\/es\/?p=167190"},"modified":"2026-02-25T13:53:47","modified_gmt":"2026-02-25T12:53:47","slug":"que-es-pygtk","status":"publish","type":"post","link":"https:\/\/liora.io\/es\/que-es-pygtk","title":{"rendered":"PyGTK: la herramienta de creaci\u00f3n de interfaz gr\u00e1fica en Python"},"content":{"rendered":"\n<p><b>PyGTK es un m\u00f3dulo de Python que permite crear una interfaz gr\u00e1fica de usuario (GUI) para una aplicaci\u00f3n. Descubre todo lo que necesitas saber sobre esta herramienta y su sucesora PyGObject: c\u00f3mo funciona, ventajas e inconvenientes, cursos, etc.<\/b><\/p>\n\n\n\n<p>Una interfaz gr\u00e1fica de usuario es esencial para una aplicaci\u00f3n moderna. Permite a los usuarios interactuar con facilidad. Para crear una GUI de este tipo para un programa en Python, solemos utilizar el m\u00f3dulo PyGTK.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-que-es-pygtk\">\u00bfQu\u00e9 es PyGTK?<\/h2>\n\n\n\n<p>Creado por James Henstridge, PyGTK es un m\u00f3dulo para <b>crear interfaces gr\u00e1ficas de usuario en Python<\/b> que permite a los usuarios interactuar con una aplicaci\u00f3n r\u00e1pidamente. Su nombre es una combinaci\u00f3n del <a href=\"https:\/\/liora.io\/es\/python-un-zoom-en-el-lenguaje-mas-popular\">lenguaje Python<\/a> y <b>GTK<\/b>: GIMP ToolKit. De hecho, es una colecci\u00f3n de envoltorios de Python para la biblioteca de <b>interfaz gr\u00e1fica de usuario GTK+<\/b>.<\/p>\n\n\n\n<p><b>Incluye muchos elementos gr\u00e1ficos y otras herramientas de programaci\u00f3n para construir aplicaciones<\/b>. PyGTK es muy intuitivo y resulta ideal para la creaci\u00f3n r\u00e1pida de prototipos. Este software de c\u00f3digo abierto con <b>licencia LGPL<\/b> tambi\u00e9n es una biblioteca multiplataforma. Se puede instalar en Unix y Win32. Es una extensi\u00f3n del proyecto GNOME.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-para-que-se-utiliza-pygtk\">\u00bfPara qu\u00e9 se utiliza PyGTK?<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/2026\/02\/code-python-interface-exemple-1024x572.jpg\" alt=\"stocks-gdded1dff3_640\" \/><\/figure>\n\n\n\n<p>PyGTK se utiliza principalmente para crear una interfaz gr\u00e1fica de usuario (GUI) en Python. Una GUI consiste en una ventana y su colecci\u00f3n de widgets, incluyendo cuadros de di\u00e1logo, casillas de verificaci\u00f3n, botones, texto y otros elementos.<\/p>\n\n\n\n<p><b>La GUI env\u00eda una se\u00f1al al programa tan pronto como el usuario interact\u00faa con esta ventana o uno de sus widgets<\/b>. Esto es as\u00ed incluso si el usuario solo pasa el cursor del rat\u00f3n por encima. El objetivo es informar al programa de que puede ser necesaria una respuesta.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/es\/nuestros-cursos-de-data\">Empezar a formarse en PyGTK<\/a><\/div>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"ventajas-y-desventajas-de-pygtk\">Ventajas y desventajas de PyGTK<\/h3>\n\n\n\n<p>Uno de los principales puntos fuertes de PyGTK es su alto nivel de rendimiento, especialmente en las <b>versiones 0.X para GTK 1.2<\/b>. La <b>versi\u00f3n 2.0 para GTK 2.X<\/b> sigue siendo muy buena. Esta herramienta tambi\u00e9n proporciona una <a href=\"https:\/\/liora.io\/es\/api-que-es-y-para-que-sirve\">API<\/a> eficiente basada en la <b>propagaci\u00f3n de retrollamadas<\/b>. Cada componente puede enviar una se\u00f1al, que se transmite hacia arriba hasta que es capturada y se genera una <b>llamada de retorno<\/b>.<\/p>\n\n\n\n<p>Una herramienta de creaci\u00f3n de interfaces llamada <b>Glade permite generar una referencia XML <\/b>para la interfaz que la biblioteca puede utilizar directamente. Adem\u00e1s, PyGTK ofrece un <b>alto nivel de portabilidad de aplicaciones a Windows<\/b>. En general, esta portabilidad puede realizarse sin tener que modificar el c\u00f3digo.<\/p>\n\n\n\n<p>Por \u00faltimo, la documentaci\u00f3n de esta herramienta es muy completa. Hay excelentes tutoriales para ambas versiones, y la referencia es particularmente extensa para 2.X. Por otro lado, la principal debilidad de PyGTK es el tama\u00f1o del c\u00f3digo. Aunque gran parte de \u00e9l parece superfluo, es esencial.<\/p>\n\n\n\n<p>Para usar cualquier elemento, es necesario construirlo, luego llamarlo, configurarlo con sus m\u00e9todos, posicionarlo y luego mostrarlo con el <b>m\u00e9todo show ()<\/b>. Hay al menos tres m\u00e9todos de llamada para cada objeto. En consecuencia, el c\u00f3digo fuente es voluminoso.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"los-modulos-pygtk\">Los m&oacute;dulos PyGTK<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/2026\/02\/ecran-de-code-programmation-1024x572.jpg\" alt=\"\" \/><\/figure>\n\n\n\n<p>Existen diferentes m\u00f3dulos para PyGTK. <b>Pango<\/b> es una biblioteca de dise\u00f1o y dibujo textual centrada en la internacionalizaci\u00f3n. Cairo es una biblioteca de gr\u00e1ficos 2D compatible con distintos tipos de dispositivos. La <b>biblioteca ATK<\/b> proporciona herramientas de accesibilidad como interfaces de usuario, lupas o dispositivos de entrada alternativos.<\/p>\n\n\n\n<p><b>El m\u00f3dulo GTK se encarga de la interfaz de usuario<\/b>, mientras que Glade se utiliza para crear interfaces gr\u00e1ficas a partir de archivos XML. Por \u00faltimo, GObject es la clase base de las clases PyGTK y proporciona las funciones y atributos comunes.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"las-clases-de-pygtk\">Las clases de PyGTK<\/h2>\n\n\n\n<p>Veamos ahora las diferentes clases de PyGTK. La <b>clase gtk.Widget<\/b> proporciona un conjunto est\u00e1ndar de m\u00e9todos y se\u00f1ales para los widgets. La clase gtk.Window es una ventana que contiene una barra de t\u00edtulo y botones para redimensionarla, cerrarla o moverla.<\/p>\n\n\n\n<p>El <b>gtk.Dialog<\/b> se utiliza para crear una ventana emergente que contiene informaci\u00f3n y opciones que el usuario puede elegir. El <b>gtk.Button<\/b> es un widget de bot\u00f3n que env\u00eda una se\u00f1al cuando se pulsa sobre \u00e9l. Por lo general se muestra como un bot\u00f3n pulsador con una etiqueta de texto y se utiliza para adjuntar una funci\u00f3n de llamada de retorno.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/es\/nuestros-cursos-de-data\">Descubrir nuestros cursos en Data Science<\/a><\/div>\n<\/div>\n\n\n\n<p>Por su parte, <b>gtk.Label<\/b> muestra texto en modo solo lectura. Con <b>gtk.Layout<\/b>, es posible crear un \u00e1rea desplazable con widgets hijos y gr\u00e1ficos personalizados que pueden desplazarse indefinidamente. La <b>gtk.Toolbar<\/b> es un contenedor que almacena y mantiene una barra horizontal o vertical de botones y widgets. El widget <b>gtk.ComboBox<\/b> se utiliza para seleccionar elementos de una lista.<\/p>\n\n\n\n<p>Para a\u00f1adir una barra de desplazamiento horizontal o vertical, se utiliza <b>gtk.Scrollbar<\/b>. La clase <b>gtk.ProgressBar<\/b> se utiliza para mostrar el progreso de un proceso largo. Finalmente, el <b>gtk.Menu<\/b> agrupa objetos de elementos de men\u00fa a los que el usuario puede acceder, realizando funciones de la aplicaci\u00f3n cuando se activan.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"que-aplicaciones-utilizan-pygtk\">&iquest;Qu&eacute; aplicaciones utilizan PyGTK?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/2026\/02\/homme-travaillant-ordinateur-bureau-1024x572.jpg\" alt=\"\" \/><\/figure>\n\n\n\n<p>Muchas aplicaciones utilizan PyGTK. Ejemplos bien conocidos incluyen el instalador Anaconda, <b>BitTorrent, SoundConverter <\/b>o <b>Ubuntu Software Center<\/b>.<\/p>\n\n\n\n<p>Otros ejemplos incluyen Deluge, Emesene, Flumotion, Exaile, gDesklets, Gajim, GIMP y Gedit, Gramps GNOME Sudoku, Jokosher, el cliente de microblogging Gwibbler, PyMusique, puddletag, Tryton, ROX Desktop, Pybliographer, el IDE Wing, Comix o incluso el instalador de Ubuntu Ubiquity.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"que-es-pygobject\">&iquest;Qu&eacute; es PyGObject?<\/h2>\n\n\n\n<p>Con el lanzamiento de la versi\u00f3n 3 de GTK, PyGTK es reemplazado por PyGObject que utiliza la <b>introspecci\u00f3n GObject para generar bindings para Python y otros lenguajes<\/b> muy r\u00e1pidamente. Esto eliminar\u00e1 el retraso entre las actualizaciones de GTK y los bindings en diferentes lenguajes. Esta herramienta proporciona un envoltorio que se utiliza en programas Python cuando se accede a <b>bibliotecas GObject<\/b>: un sistema de objetos utilizado principalmente por GTK, GLib, GIO, GStreamer.<\/p>\n\n\n\n<p>Cualquier biblioteca que utilice la introspecci\u00f3n GObject es accesible din\u00e1micamente para PyGObject. Esto reemplaza la necesidad de m\u00f3dulos separados como <b>PyGTK<\/b>, <b>GIO<\/b> y <b>python-gnome<\/b> para construir una aplicaci\u00f3n completa de GNOME 3.0. Tan pronto como se a\u00f1ade una nueva funcionalidad a la biblioteca GObject, est\u00e1 inmediatamente disponible como una API de Python sin necesidad de un intermediario.<\/p>\n\n\n\n<p>El <b>envoltorio PyGObject<\/b> y la <b>biblioteca GObject<\/b> est\u00e1n <b>licenciadas bajo GNU LGPL<\/b>. Por tanto, son adecuadas para su uso en software libre y propietario. Muchas aplicaciones ya las utilizan, tanto para peque\u00f1os scripts de un solo uso como para grandes aplicaciones. Algunos ejemplos son Ex Falso, Gramps, Meld, Pitivi, PyChess y Quod Libet. Aunque PyGObject ya ha sustituido a PyGTK, la portabilidad lleva tiempo para muchos programas.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion-pygtk-un-modulo-python-muy-util-para-la-creacion-de-interfaces-graficas-de-usuario\">Conclusi&oacute;n: PyGTK, un m&oacute;dulo Python muy &uacute;til para la creaci&oacute;n de interfaces gr&aacute;ficas de usuario<\/h2>\n\n\n\n<p>El m\u00f3dulo PyGTK de Python facilita la creaci\u00f3n de interfaces gr\u00e1ficas de usuario avanzadas para aplicaciones. Es una <b>herramienta de c\u00f3digo abierto<\/b> <b>y multiplataforma<\/b> que ofrece una gran flexibilidad, ahora sustituida por PyGObject.<\/p>\n\n\n\n<p>Para <b>aprender a utilizar PyGTK, PyGObject y Python<\/b>, puedes elegir Liora. Nuestros <b>cursos de formaci\u00f3n en Data Science<\/b> incluyen un m\u00f3dulo dedicado a este lenguaje de programaci\u00f3n. Estos diferentes cursos te permitir\u00e1n adquirir todas las competencias necesarias para trabajar como <strong><a href=\"https:\/\/liora.io\/es\/formacion-data-analyst\">Data Analyst<\/a><\/strong>,<strong><a href=\"https:\/\/liora.io\/es\/formacion-data-engineer\"> Data Engineer<\/a><\/strong>, <strong><a href=\"https:\/\/liora.io\/es\/formacion-data-scientist\">Data Scientist<\/a><\/strong> o incluso<strong><a href=\"https:\/\/liora.io\/es\/formacion-data-management\"> Data Product Manager<\/a><\/strong>.<\/p>\n\n\n\n<p>Todos nuestros programas se cursan \u00edntegramente a distancia online y son bonificables con FUNDAE. \u00a1No esperes m\u00e1s y <b>descubre Liora<\/b>!<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/es\/nuestros-cursos-de-data\">Descubrir los cursos de Liora<\/a><\/div>\n<\/div>\n\n\n\n<p>Ya sabes todo lo que hay que saber sobre PyGTK. Para m\u00e1s informaci\u00f3n sobre el mismo tema, descubre <strong><a href=\"https:\/\/liora.io\/python-tout-savoir\">nuestro dosier completo sobre Python<\/a><\/strong> y <strong><a href=\"https:\/\/liora.io\/numpy\">nuestro dosier sobre NumPy<\/a><\/strong>.<\/p>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"\u00bfQu\u00e9 es PyGTK?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"PyGTK es un m\u00f3dulo de Python (creado por James Henstridge) para crear interfaces gr\u00e1ficas de usuario (GUI). Combina Python con GTK (GIMP ToolKit) mediante envoltorios de Python para la biblioteca GTK+. Es intuitivo, ideal para prototipado r\u00e1pido, open-source (LGPL), multiplataforma (Unix, Win32) y extensi\u00f3n del proyecto GNOME.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Los m\u00f3dulos PyGTK\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"M\u00f3dulos principales: Pango (dise\u00f1o\/dibujo textual, internacionalizaci\u00f3n), Cairo (gr\u00e1ficos 2D multidispositivo), ATK (herramientas accesibilidad: lupas, interfaces alternativas), GTK (interfaz usuario), Glade (creaci\u00f3n GUI desde XML), GObject (clase base, proporciona funciones\/atributos comunes).\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Las clases de PyGTK\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Clases clave: gtk.Widget (m\u00e9todos\/se\u00f1ales est\u00e1ndar), gtk.Window (ventana con t\u00edtulo y botones), gtk.Dialog (ventana emergente con opciones), gtk.Button (bot\u00f3n con se\u00f1al al pulsar), gtk.Label (texto solo lectura), gtk.Layout (\u00e1rea desplazable con widgets\/gr\u00e1ficos), gtk.Toolbar (barra con botones\/widgets), gtk.ComboBox (selecci\u00f3n de lista), gtk.Scrollbar (barras desplazamiento), gtk.ProgressBar (progreso procesos largos), gtk.Menu (agrupa elementos de men\u00fa).\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"\u00bfQu\u00e9 aplicaciones utilizan PyGTK?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Aplicaciones conocidas: instalador Anaconda, BitTorrent, SoundConverter, Ubuntu Software Center, Deluge, Emesene, Flumotion, Exaile, gDesklets, Gajim, GIMP, Gedit, Gramps, GNOME Sudoku, Jokosher, Gwibbler, PyMusique, puddletag, Tryton, ROX Desktop, Pybliographer, IDE Wing, Comix, Ubuntu Ubiquity Installer.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"\u00bfQu\u00e9 es PyGObject?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"PyGObject es el sucesor de PyGTK (desde GTK 3). Utiliza introspecci\u00f3n GObject para generar bindings r\u00e1pidos para Python y otros lenguajes, eliminando el retraso entre actualizaciones GTK y bindings. Cualquier biblioteca con introspecci\u00f3n GObject es accesible din\u00e1micamente, reemplazando m\u00f3dulos separados (PyGTK, GIO, python-gnome). Licencia LGPL. Ejemplos de uso: Ex Falso, Gramps, Meld, Pitivi, PyChess, Quod Libet. La portabilidad desde PyGTK lleva tiempo.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Conclusi\u00f3n: PyGTK, un m\u00f3dulo Python muy \u00fatil para la creaci\u00f3n de interfaces gr\u00e1ficas de usuario\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"PyGTK facilita la creaci\u00f3n de GUIs avanzadas en Python. Es open-source, multiplataforma, flexible \u2013 ahora sustituido por PyGObject. Liora ofrece cursos Data Science con m\u00f3dulo Python para perfiles Data Analyst, Data Engineer, Data Scientist, Data Product Manager. Formaci\u00f3n online, bonificable con FUNDAE.\"\n      }\n    }\n  ]\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>PyGTK es un m\u00f3dulo de Python que permite crear una interfaz gr\u00e1fica de usuario (GUI) para una aplicaci\u00f3n. Descubre todo lo que necesitas saber sobre esta herramienta y su sucesora PyGObject: c\u00f3mo funciona, ventajas e inconvenientes, cursos, etc. Una interfaz gr\u00e1fica de usuario es esencial para una aplicaci\u00f3n moderna. Permite a los usuarios interactuar con [&hellip;]<\/p>\n","protected":false},"author":47,"featured_media":183944,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2439],"class_list":["post-167190","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-dev"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/es\/wp-json\/wp\/v2\/posts\/167190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/es\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/es\/wp-json\/wp\/v2\/comments?post=167190"}],"version-history":[{"count":4,"href":"https:\/\/liora.io\/es\/wp-json\/wp\/v2\/posts\/167190\/revisions"}],"predecessor-version":[{"id":184213,"href":"https:\/\/liora.io\/es\/wp-json\/wp\/v2\/posts\/167190\/revisions\/184213"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/es\/wp-json\/wp\/v2\/media\/183944"}],"wp:attachment":[{"href":"https:\/\/liora.io\/es\/wp-json\/wp\/v2\/media?parent=167190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/es\/wp-json\/wp\/v2\/categories?post=167190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}