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

War es hilfreich?

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()))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top