GTK und PyGTK Unterschied
Frage
importieren viele Programmierer sowohl gtk und pygtk auf diese Weise:
import gtk
import pygtk
Ich habe ein einfaches Programm mit nur gtk erstellt und es funktioniert:
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()
So ... die Frage ist: Was ist der Unterschied von GTK und PyGTK
Lösung
pygtk
wird durch python-gobject
zur Verfügung gestellt.
gtk
wird durch python-gtk2
zur Verfügung gestellt.
pygtk
bietet die pygtk.require
Funktion, die Ihnen erlaubt, zu verlangen, dass eine bestimmte Version von GTK (oder besser) installiert ist. Zum Beispiel
import pygtk
pygtk.require('2.0')
Import gtk
nur möglich ist, aber das Programm möglicherweise nicht wie erwartet auf einem anderen Gerät, wenn ihre Version von GTK älter ist.
Andere Tipps
Ich war von pygtk
vs gtk
verwirrt, weil meine Test-App gut mit gtk
gearbeitet.
Ich weiß jetzt, dass gtk
Mittel PyGTK , das Python-Modul, das Bindungen an die enthält < a href = "https://www.gtk.org" rel = "nofollow noreferrer"> Gtk + 2.x Bibliothek. pygtk
ist ein weiteres Modul, auch Teil der PyGTK , das kann (aber nicht muss) werden verwendet, um eine bestimmte Version der Gtk + Bibliothek zu gewährleisten.
Der gtk
und pytk
Module gilt für Python 2 nur. Für 3 Python müssen Sie Gtk + durch die gi
verwenden GObject Introspection Modul.
Die Python GObject Introspection Modul (aka gi
oder gi.repository
) ist eine Middleware-Schicht zwischen C Bibliotheken und Sprachbindungen ( GObject verwenden). Im Wesentlichen generiert automatisch es Python-Bindungen aus dem zugrunde liegenden C-Quellcode. GObject ist die Glib Object System , wobei GObject bietet GTK + mit dem objektorientierten C-basierten APIs und automatischen transparenten API Bindungen zu anderen Sprachen kompilierten oder interpretiert (wie zB Python).
Die GTK3 + Bibliothek verwendet gobject aber die GTK2 + Bibliothek nicht. Dies bedeutet, dass Sie nicht Gtk2 + mit Python-Version 3.
verwenden können,Für Python 2 würden Sie verwenden
import pygtk
pygtk.require('2.0')
import gtk
oder
import gtk
Für Python 3 Sie brauchen,
import gi
gi.require_version('Gtk','3.0')
from gi.repository import Gtk
Sie können mit Versionen überprüfen:
Für Gtk + 2 (Python 2 oder 3)
print("PyGTK %d.%d.%d Gtk+ %d.%d.%d" % (gtk.pygtk_version + gtk.gtk_version))
Für Gtk + 3 (Python 3 nur)
print("Gtk %d.%d.%d" % (Gtk.get_major_version(),
Gtk.get_minor_version(),
Gtk.get_micro_version()))