python - Diferencia GTK y PYGTK
glade python (2)
muchos programadores importan tanto gtk como pygtk de esta manera:
import gtk
import pygtk
He creado un programa simple usando solo gtk y funciona:
import gtk
window = gtk.Window()
window.set_size_request(800, 700)
window.set_position(gtk.WIN_POS_CENTER)
window.connect("destroy", gtk.main_quit)
button = gtk.Button("Vai")
button.set_size_request(30, 35)
button.connect("clicked", naviga)
testo = gtk.Entry()
h = gtk.HBox()
h.pack_start(testo)
h.pack_start(button)
window.add(h)
window.show_all()
gtk.main()
Entonces ... la pregunta es: ¿cuál es la diferencia entre GTK y PYGTK?
pygtk
es proporcionado por python-gobject
. gtk
es proporcionado por python-gtk2
.
pygtk
proporciona la función pygtk.require
que le permite pygtk.require
que se pygtk.require
una determinada versión de gtk (o superior). Por ejemplo
import pygtk
pygtk.require(''2.0'')
solo es posible importar gtk
, pero es posible que su programa no funcione como se espera en la máquina de otra persona si su versión de gtk es más antigua.
pygtk
vs gtk
me confundió porque mi aplicación de prueba funcionó bien con gtk
.
Ahora me doy cuenta de que gtk
significa PyGTK , el módulo de Python que contiene enlaces a la biblioteca Gtk + 2.x. pygtk
es otro módulo, también parte de PyGTK , que puede (pero no es necesario) usarlo para garantizar una determinada versión de la biblioteca Gtk + .
Los módulos gtk
y pytk
aplican solo a Python 2. Para Python 3 necesitas usar Gtk + a través del módulo de introspección gi
GObject .
El módulo de introspección GObject de Python (también conocido como gi
o gi.repository
) es una capa de middleware entre las bibliotecas de C (que utiliza GObject ) y los enlaces de idiomas. Esencialmente, genera automáticamente enlaces de Python a partir del código fuente C subyacente. GObject es el sistema de objetos GLib , donde GLib proporciona los bloques de creación de aplicaciones centrales para bibliotecas y aplicaciones escritas en C. GObject proporciona GTK + con API basadas en C orientadas a objetos y enlaces API transparentes automáticos a otros lenguajes compilados o interpretados (como Python) .
La biblioteca GTK3 + usa GObject pero la biblioteca GTK2 + no. Esto significa que no puedes usar Gtk2 + con Python versión 3.
Para Python 2 usarías
import pygtk
pygtk.require(''2.0'')
import gtk
o solo
import gtk
Para Python 3 necesitas
import gi
gi.require_version(''Gtk'',''3.0'')
from gi.repository import Gtk
Puedes verificar las versiones con:
Para Gtk + 2 (Python 2 o 3)
print("PyGTK %d.%d.%d Gtk+ %d.%d.%d" % (gtk.pygtk_version + gtk.gtk_version))
Para Gtk + 3 (solo Python 3)
print("Gtk %d.%d.%d" % (Gtk.get_major_version(),
Gtk.get_minor_version(),
Gtk.get_micro_version()))