Duplicata possible:
Faire face à un problème avec "gtk.RESPONSE_OK" dans le tutoriel rapide du joueur simple
Je suis avec ce tutoriel, mais est arrivé à un point d'arrêt où le programme a un problème avec la ligneif response == gtk.RESPONSE_OK
. Cela se produit après avoir cliqué sur Ouvrir, puis sélectionné un répertoire et cliqué sur OK. Le message d'erreur est "NameError: le nom global 'gtk' n'est pas défini". Je l'ai donc recherché et j'ai découvert que nous devons apparemment importer quelques éléments:
import pygtk
pygtk.require("2.0")
import gtk
Si j'ajoute ceci au SimpleMediaPlayerWindow.py, alors le programme ne s'exécutera pas du tout, donnant un message d'erreur:
/usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed
import gobject._gobject
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: specified class size for type `PyGtkGenericCellRenderer' is smaller than the parent type's `GtkCellRenderer' class size
from gtk import _gtk
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: g_type_get_qdata: assertion `node != NULL' failed
from gtk import _gtk
Je pensais que toutes ces choses étaient installées et configurées correctement lors de l'installation de rapidement. Aucune suggestion?
En passant, il y a quelques fautes de frappe dans le tutoriel qui peuvent le rendre légèrement difficile à suivre. Lors de la suppression de conteneurs préexistants de la fenêtre, il indique "Naviguer dans la liste des enfants et supprimer label1" deux fois, mais la deuxième fois, il s'agit en fait de label2. "Trouver les volets horizontaux sous l'onglet Conteneurs ..." devrait en fait se lire "Rechercher les volets sous l'onglet Conteneurs ..." (peut-être que cela a changé avec une version mise à jour de clairière). Enfin (jusqu'à présent), "Ajoutez ensuite à votre fonction on_on_openbutton_clicked" il y a une fois de trop de on dans ce nom de fonction.
J'ai rencontré le même problème et j'ai constaté que la syntaxe correcte n'était pas if response == gtk.RESPONSE_OK
. Ça devrait être if response == Gtk.ResponseType.OK
. Cela a résolu mon problème et j'espère qu'il résoudra également le vôtre. Référence: https://bugs.launchpad.net/ubuntu/+source/quickly/+bug/929572
Vous ne devez pas importer à la fois gtk et pygtk, car ils provoqueront des conflits entre eux.