-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathGTK.txt
executable file
·186 lines (130 loc) · 5.8 KB
/
GTK.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
=================
Guía de GTK by dM
=================
GTK (conocido hasta febrero de 2019 como GTK+12) o The GIMP Toolkit 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. Otros entornos gráficos para Linux como XFCE y ROX
han elegido también GTK como su biblioteca de componentes gráficos. GTK también
se puede emplear para desarrollar aplicaciones gráficas que funcionen en los
escritorio Windows, Mac OS y otros sistemas operativos.
==================
Bibliotecas de GTK
==================
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.
=========================
Aplicaciones que usan GTK
=========================
-GNOME está basado en GTK, lo que significa que los programas de GNOME usan GTK.
-Xfce está basado en GTK.
-LXDE está basado en GTK, significa "Lightweight X11 Desktop Environment".
-ROX Desktop un escritorio ligero, con características de la GUI de RISC OS.
-GPE Palmtop Environment.
-Maemo (Nokia's Internet-tablet framework).
-Access Linux Platform (sucesor de la plataforma Palm OS PDA).
-One Laptop Per Child usa GTK y PyGTK.
Los entornos de escritorio no son necesarios para ejecutar los programas GTK.
Si las bibliotecas que requiere el programa están instaladas, un programa GTK
puede ser ejecutado por encima de otros entornos basadas en X11 como KDE o
cualquier otro entorno, lo que incluye Mac OS X, si X11.app está instalado.
GTK también puede ejecutarse en Microsoft Windows, es utilizado por algunas
aplicaciones populares multiplataforma como Pidgin y GIMP. wxWidgets, un toolkit
gráfico multiplataforma usa GTK en sistemas tipo Unix. Algunos de los ports más
inusuales incluyen directfb y ncurses.
============================
Implementaciones disponibles
============================
Existe una gran variedad de lenguajes de programación con los cuales se puede
usar GTK, aunque no en todos está disponible en su última versión. Entre los
más usados están los siguientes:
-C++ (gtkmm)
-C# (Gtk Sharp)
-Java (java-gnome)
-Python (PyGTK)
-Javascript
-Julia
-Vala
-Perl
====================================
Creando una ventana con GTK y Python
====================================
Probado con Python2.7 en GNU/Linux Debian 8 Jessie.
Creamos un archivo "script.py" de python con el siguiente código dentro:
---
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
window = Gtk.Window()
window.show_all()
Gtk.main()
---
Guardamos y ejecutamos con:
$ python script.py
Esto nos mostrara una ventana de escritorio con el mensaje Hello World!
----- Hola mundo! con GTK y Python -----
Probado con Python2.7 en GNU/Linux Debian 8 Jessie.
Creamos un archivo "script.py" de python con el siguiente código dentro:
---
# -*- coding: utf-8 -*-
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
# Configurar la ventana Gtk
win = Gtk.Window()
# Dígale a Gtk qué hacer cuando la ventana está cerrada (en este caso, salga del bucle principal)
win.connect("delete-event", Gtk.main_quit)
# ¡Crea una etiqueta que diga Hola Mundo!
label = Gtk.Label(label="Hello World!")
# Agregar la etiqueta a la ventana
win.add(label)
# Dile a Gtk que muestre todos los widgets dentro de la ventana
win.show_all()
# Inicie el bucle principal de Gtk, que vuelve cuando se llama a Gtk.main_quit
Gtk.main()
---
Guardamos y ejecutamos con:
$ python script.py
Esto nos mostrara una ventana de escritorio con el mensaje Hello World!
En estos ejemplos anteriores importamos a "gi" es decir a PyGObject es un
paquete de Python que proporciona enlaces para bibliotecas basadas en
GObject como GTK, GStreamer, WebKitGTK, GLib, GIO y muchas más.
=======================================================
Instalando PyGObject en Debian para usarlo con Python 3
=======================================================
# apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0
$ python3 hello.py
====================================
Instalando PyGObject de PyPI con pip
====================================
# apt install libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev
gir1.2-gtk-3.
$ pip3 install pycairo
$ pip3 install PyGObject
$ python3 hello.py
=======
Fuentes
=======
-https://es.wikipedia.org/wiki/GTK
-https://pygobject.readthedocs.io/en/latest/index.html
-https://pygobject.readthedocs.io/en/latest/getting_started.html