web-dev-qa-db-fra.com

Faire face à un problème avec "gtk.RESPONSE_OK" dans le didacticiel rapide du lecteur simple

Je suis assez nouveau à la fois rapidement et Python. Je rencontre plusieurs problèmes en apprenant à utiliser rapidement à partir du tutoriel suivant sur le site des développeurs Ubuntu: http://developer.ubuntu.com/resources/app-developer-cookbook/multimedia/creating-a-simple- lecteur multimédia /

L'erreur suivante que je n'arrive pas à comprendre:

Traceback (most recent call last):
  File "/home/sumit/Sumit/simple-player/simple_player/SimplePlayerWindow.py", line 36, in on_openbutton_clicked
    if response==gtk.RESPONSE_OK:
NameError: global name 'gtk' is not defined

Je me rends compte que je suis censé importer quelque chose, j'ai donc essayé d'ajouter import gtk qui n'a pas fonctionné et qui a donné l'erreur suivante:

  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

Jusqu'à présent, j'ai suivi toutes les étapes des didacticiels. Mais il n'est fait mention d'aucune autre importation autre que "invite" et "os". Veuillez aider.


Contribution d'Agmenor, face au même problème:

J'ai également essayé de remplacer le texte if response == gtk.RESPONSE_OK: par if response == Gtk.RESPONSE_OK: (remarquez le G majuscule). Cela donne une autre erreur:

AttributeError: 'gi.repository.Gtk' object has no attribute 'RESPONSE_OK'
3
sumitgouthaman

J'ai remplacé "gtk.RESPONSE_OK" par "Gtk.ResponseType.OK"

Maintenant, tout fonctionne correctement.

Je l'ai trouvé ici: http://python-gtk-3-tutorial.readthedocs.org/en/latest/dialogs.html

2
sumitgouthaman

La boîte à outils actuelle du 12.04 utilise Gtk de gi.repository et non l'ancienne gtk.
Le didacticiel n'a pas été mis à jour pour cette modification.

Cela peut être un/votre point de friction.

Production cat SimplePlayerWindow.py
couper

from gi.repository import Gtk # pylint: disable=E0611
import logging
logger = logging.getLogger('simple_player')

/couper

2
RobotHumans