Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/07/2006, à 18:54

Arrrakis

[Résolu]question bète sur pygtk

Bonjour,

Je viens de me mettre au tutoriel de John Finlay sur pygtk mais j'ai un leger problème :
Il connait le module pygtk mais pas les widgets qu'il y a dedans :

# -*- coding: utf-8 -*-
#!/usr/bin/env python

from pygtk import *
pygtk.require('2.0')
import gtk


w=Window()
b=Button('Hello')
w.add(b)
def hello(b):
   print "Hello, World!"
b.connect('clicked', hello)
w.show_all()

execution:

Traceback (most recent call last):
  File "/home/bobo/Desktop/f.py", line 5, in -toplevel-
    pygtk.require('2.0')
NameError: name 'pygtk' is not defined

Kesskifokjefé ? big_smile

Dernière modification par Arrrakis (Le 19/07/2006, à 21:55)

Hors ligne

#2 Le 18/07/2006, à 21:11

Blackestmajor

Re : [Résolu]question bète sur pygtk

sudo apt-get libwxgtk-2.6-0 et libwxgtk-2.6-dev (vérifie dans synaptic en tapant wxgtk j'ai ptet inversé un . et un -)

Dernière modification par Blackestmajor (Le 18/07/2006, à 21:11)

Hors ligne

#3 Le 18/07/2006, à 21:25

Arrrakis

Re : [Résolu]question bète sur pygtk

Merci a toi mais ca n'a rien changé.
J'ai exactement la même erreur.

Hors ligne

#4 Le 18/07/2006, à 23:03

Crashforburn

Re : [Résolu]question bète sur pygtk

Installes pythongtk2-dev (et ses dépendances ^^) par synaptic ou apt-get wink


Un blog inutile de plus : http://crashforburn.free.fr/dotclear/
[Membre du club des beaux Ubunteros] : http://forum.ubuntu-fr.org/viewtopic.php?pid=535299
Contre la nouvelle année, votons fonacon : http://www.fonacon.net/

Hors ligne

#5 Le 19/07/2006, à 01:05

marcounet

Re : [Résolu]question bète sur pygtk

Arrrakis a écrit :
# -*- coding: utf-8 -*-
#!/usr/bin/env python

from pygtk import *
pygtk.require('2.0')
import gtk

Non, à mon avis c'est la ligne d'import de pygtk qui pose problème.
Soit on fait ceci :

import pygtk
pygtk.require('2.0')

Soit on fait cela :

from pygtk import *
require('2.0')

Mais on ne mélange pas les deux smile
C'est une histoire de namespace. Dans le second cas, "require" est importé dans le namespace du module principal et il ne faut donc plus le préfixer du nom du module "pygtk."

Dernière modification par marcounet (Le 19/07/2006, à 01:06)


Marcounet des Brumes

Hors ligne

#6 Le 19/07/2006, à 18:29

Arrrakis

Re : [Résolu]question bète sur pygtk

euh, j'ai installé python-gtk2-dev et j'ai modifié mon programme :

from pygtk import *
require('2.0')
import gtk

ca n'a rien changé du tout hmm

Hors ligne

#7 Le 19/07/2006, à 21:27

mccricri

Re : [Résolu]question bète sur pygtk

Pourtant la solution de marcounet était la bonne.
As-tu le même message d'erreur ? (ce qui m'étonnerait)

Hors ligne

#8 Le 19/07/2006, à 21:33

marcounet

Re : [Résolu]question bète sur pygtk

Arrrakis a écrit :

ca n'a rien changé du tout hmm

Ce n'est pas vrai,
car maintenant tu devrais avoir comme message :

name 'Window' is not defined

c'est parce que tu dois mettre "gtk." devant.

La façon suivante ne génère aucune erreur:

from pygtk import *
require('2.0')
from gtk import *

w=Window()
b=Button('Hello')
w.add(b)
def hello(b):
   print "Hello, World!"
b.connect('clicked', hello)
w.show_all()

Mais de toute façons ton programme ne fait absolument rien car il n'y a même pas d'appel à gtk.main().
Fais le tutoriel jusqu'au bout en faisant attention ! smile

Dernière modification par marcounet (Le 19/07/2006, à 21:35)


Marcounet des Brumes

Hors ligne

#9 Le 19/07/2006, à 21:54

Arrrakis

Re : [Résolu]question bète sur pygtk

D'accord, moi je pensais que les widgets etaient dans pygtk, mais je ne savais pas du tout a quoi servait d'importer gtk.
Ok j'ai compris wink

marcounet a écrit :

Mais de toute façons ton programme ne fait absolument rien car il n'y a même pas d'appel à gtk.main().
Fais le tutoriel jusqu'au bout en faisant attention ! smile

bin en fait j'ai recopié le 1er exemple de script :

moe: 96:1095$pygtkconsole.py
Python 2.2.2, PyGTK 1.99.14 (Gtk+ 2.0.6)
Interactive console to manipulate GTK+ widgets.
>>> w=Window()
>>> b=Button(’Hello’)
>>> w.add(b)
>>> def hello(b):
...    print "Hello, World!"
...
>>> b.connect(’clicked’, hello)
5
>>> w.show_all()
>>> Hello, World!
Hello, World!
Hello, World!
>>> b.set_label("Hi There")
>>>

Je test ca plus tard,
Merci.

Dernière modification par Arrrakis (Le 19/07/2006, à 21:56)

Hors ligne