Diferencias entre las revisiones 27 y 28
Versión 27 con fecha 2020-03-05 18:21:21
Tamaño: 3713
Comentario:
Versión 28 con fecha 2020-03-09 13:36:59
Tamaño: 3843
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 67: Línea 67:
Un ejemplo completo utilizando Glade para el diseño de las GUIs además de la conexión a una base de datos está disponible en: https://gitlab.com/gtk3/gtk3-samples ''' '''
Línea 82: Línea 84:
https://gitlab.com/gtk3/gtk3-samples ''' '''

GTK

Introducción

Es una biblioteca de componentes gráficos multiplataforma para desarrollar interfaces gráficas de usuario (GUI). Fue desarrollada inicialmente para implementar la interfaz gráfica del programa de edición de imágenes GIMP. En 1997 el proyecto GNOME escogió GTK+ como base sobre la cual desarrollar su entorno gráfico.​ Otras aplicaciones gráficas no directamente relacionadas con GNOME también han empleado GTK, convirtiéndose junto con Qt en la biblioteca GUI más popular del sistema operativo Linux.

GTK se basa en varias bibliotecas desarrolladas por el equipo de GTK y de GNOME:

  • GLib. Biblioteca de bajo nivel estructura básica de GTK y GNOME. Proporciona manejo de estructura de datos para C, portabilidad, interfaces para funcionalidades de tiempo de ejecución como ciclos, hilos, carga dinámica o un sistema de objetos.
  • GTK. Biblioteca la cual realmente contiene los objetos y funciones para crear la interfaz de usuario. Maneja widgets como ventanas, botones, menús, etiquetas, deslizadores, pestañas, etc.
  • GDK. Biblioteca que actúa como intermediario entre gráficos de bajo nivel y gráficos de alto nivel.
  • ATK. Biblioteca para crear interfaces con características de una gran accesibilidad muy importante para personas discapacitadas o minusválidos. Pueden usarse utilerías como lupas de aumento, lectores de pantalla, o entradas de datos alternativas al clásico teclado o ratón.
  • Pango. Biblioteca para el diseño y renderizado de texto, hace hincapié especialmente en la internacionalización. Es el núcleo para manejar las fuentes y el texto de la versión 2 de GTK.
  • Cairo. Biblioteca de renderizado avanzado de controles de aplicación.

GTK puede ser utilizado con diferentes lenguajes, existen binding para Python, JavaScript, C++, Perl, Rust.

Librerías requeridas

En una máquina con Debian (o Ubuntu) instalar:

# apt install python3 python3-gi

Ejemplo (Hola Mundo)

Crear el siguiente programa holamundo.py (Descargar):

   1 #!/usr/bin/env python
   2 # -*- coding: utf-8 -*-
   3 
   4 import gi
   5 gi.require_version("Gtk", "3.0")
   6 from gi.repository import Gtk
   7 
   8 def on_activate(app):
   9     win = Gtk.ApplicationWindow(application=app)
  10     btn = Gtk.Button(label="Hello, World!")
  11     btn.connect('clicked', lambda x: win.destroy())
  12     win.add(btn)
  13     win.show_all()
  14 
  15 def main(args):
  16     app = Gtk.Application(application_id='org.gtk.Example')
  17     app.connect('activate', on_activate)
  18     app.run(None)
  19     return 0
  20 
  21 if __name__ == '__main__':
  22     import sys
  23     sys.exit(main(sys.argv))

Y luego ejecutar en la terminal:

$ python3 holamundo.py

holamundo.png

Glade

Es una herramienta de desarrollo visual de interfaces gráficas mediante GTK/GNOME. Es independiente del lenguaje de programación y predeterminadamente no genera código fuente sino un archivo XML, el cual luego pueder ser cargado en tiempos de ejecución por un programa.

En una máquina con Debian (o Ubuntu) instalar:

# apt install glade

Un ejemplo completo utilizando Glade para el diseño de las GUIs además de la conexión a una base de datos está disponible en: https://gitlab.com/gtk3/gtk3-samples

Referencias

https://www.gtk.org/

https://es.wikipedia.org/wiki/GTK

https://www.gtk.org/docs/getting-started/

https://www.gtk.org/docs/language-bindings/python/

https://python-gtk-3-tutorial.readthedocs.io/en/latest/

https://es.wikipedia.org/wiki/Glade

https://gitlab.com/fabioduran/programacion-i/-/tree/master/gtk/ejemplos

https://developer.gnome.org/gnome-devel-demos/stable/beginner.py.html.en

Talleres/GTK (última edición 2020-03-09 13:36:59 efectuada por AlejandroValdes)