OVH Cloud OVH Cloud

pb pour débuter

18 réponses
Avatar
Andréï
Salut,
le langage python a l'air d'etre interressant, c'est pourquoi j'ai
téléchargé et installé les dernières versions de python,gtk+,pygtk le
tout sous XP.
J'ai trouvé facilement un helloworld.py mais déjà ca ne marche pas.
Y a t'il une manip a faire pour que pygtk sache ou trouver gtk?

VOILA EN 1ER LE RESULTAT :

Traceback (most recent call last):
File "C:\Documents and Settings\Jean-Luc\Mes documents\site perso
webmail\helloworld.py", line 7, in -toplevel-
import gtk
File "C:\Python24\Lib\site-packages\gtk-2.0\gtk\__init__.py", line
33, in -toplevel-
import gobject as _gobject
ImportError: DLL load failed: La procédure spécifiée est introuvable.



voila le prog lancé:
# !/usr/bin/env python

# exemple helloworld.py

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

class HelloWorld:

# Ceci est une fonction de rappel. Les arguments sont ignores dans
# notre exemple. Plus de precisions sur ces fonctions plus bas.
def salut(self, widget, donnees=None):
print "Salut tout le monde !"

def evnmt_delete(self, widget, evenement, donnees=None):
# Si le gestionnaire du signal "delete_event" renvoie FALSE,
# GTK emettra le signal "destroy". S'il renvoie TRUE, la
# fenetre ne sera pas detruite.
# Ceci peut etre utile pour faire apparaitre des boites
# du type "Etes vous sur de vouloir quitter ?"
print "Evenement delete survenu."

# Changez TRUE par FALSE et la fenetre principale sera detruite
# par l'evenement "delete"
return gtk.FALSE

# Une autre fonction de rappel
def destroy(self, widget, donnees=None):
gtk.main_quit()

def __init__(self):
# creation d'une nouvelle fenetre
self.fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)

# Quand la fenetre recoit le signal "delete_event" (donne par le
# gestionnaire de fenetres, generalement par l'option "fermer" ou
# la croix de la barre de titre), on lui demande d'appeler la
# fonction evnmt_delete() definie plus haut. On lui passe
l'argument
# NULL, qui est ignore.
self.fenetre.connect("delete_event", self.evnmt_delete)

# Ici on connecte l'evenement "destroy" a un gestionnaire de
signal.
# Cet evenement se produit lorsqu'on invoque
gtk_widget_destroy() sur
# la fenetre ou lorsque le gestionnaire du signal "delete"
renvoie FALSE.
self.fenetre.connect("destroy", self.destroy)

# On fixe la largeur des bordures de la fenetre.
self.fenetre.set_border_width(10)

# On cree un nouveau bouton avec l'etiquette "Hello World".
self.bouton = gtk.Button("Salut tout le monde !")

# Lorsque le bouton recoit le signal "clicked", il appelle la
# fonction salut() et lui passe None comme argument. La fonction
# salut() est definie plus haut.
self.bouton.connect("clicked", self.salut, None)

# Ceci entrainera la destruction de la fenetre par l'appel de
# gtk_widget_destroy(fenetre) si l'on clique le bouton. Encore
une fois,
# le signal "destroy" peut venir d'ici ou du gestionnaire de
fenetres.
self.bouton.connect_object("clicked", gtk.Widget.destroy,
self.fenetre)

# On place le bouton dans la fenetre (un conteneur GTK).
self.fenetre.add(self.bouton)

# La derniere etape consiste a afficher ce nouveau widget...
self.bouton.show()

# ...ainsi que la fenetre
self.fenetre.show()

def boucle(self):
# Toutes les applications PyGTK doivent avoir un gtk.main().
Arrive a ce point,
# le programme se met en attente d'un evenement (clic, appui
d'une touche, etc.)
gtk.main()

# Si le programme est lance directement ou passe en argument a
l'interpreteur
# Python, ceci cree une instance de la classe SalutMonde et l'affiche
if __name__ == "__main__":
salut = HelloWorld()
salut.boucle()


un peu d'aide serais la bienvenue

8 réponses

1 2
Avatar
noone
dans les langages portables je vois pas tant de solutions que ca
python pygtk marche sous linux mais pas sous XP
.NET/mono pas encore au point mais prometteur
java struts; EJB; JSP.... a force de creer autant de termes
je sais plus ou regarder dans les docs.
php/gtk un peu batard comme solution
perl connais pas trop




et C++ et Gtk (ou wxWidgets ou QT) ?

Avatar
Andréï

et C++ et Gtk (ou wxWidgets ou QT) ?


il faut recompilé pour chaque plateforme c'est pas interressant.

Avatar
Christophe Cavalaria
Andréï wrote:



et C++ et Gtk (ou wxWidgets ou QT) ?


il faut recompilé pour chaque plateforme c'est pas interressant.


Ca reste portable et disponible sur vraiment beaucoup de plateformes.


Avatar
noone
il faut recompilé pour chaque plateforme c'est pas interressant.



Ah !!! Le fameux slogan de Java !

Avatar
R12y
Andréï wrote:

je sens que python va pas faire de vieux os sur mon ordi si ca continu.


En tout cas c'est clair que le correcteur orthographique et ou grammatical,
lui il est pas resté longtemps.

Puis quand tu te rendra compte que C++ c'est pas très simple non plus, tu va
changer,...
Et quand tu ouvriras les yeux et que tu verras que c'est ton environnement
Windows qui est merdique, je te défies de faire en sorte qu'il ne fasse pas
de vieux os sur ton ordi...

Bon courage!

--
Un CMS Français à découvrir: CPS. (http://www.cps-project.org)
Hébergement gratuit de sites Zope, Plone, et CPS: http://www.objectis.org
Un lien qui peut servir:
http://www.google.fr/search?q=aspo+infogerance+serveur

Avatar
noone
Puis quand tu te rendra compte que C++ c'est pas très simple non plus, tu va
changer,...
Et quand tu ouvriras les yeux et que tu verras que c'est ton environnement
Windows qui est merdique, je te défies de faire en sorte qu'il ne fasse pas
de vieux os sur ton ordi...


ne soit pas si radical... il pourra garder son OS "merdique" à côté...
histoire d'occuper de la place sur les gros disques durs qu'ils vendent
actuellement ;-)

Concernant le développement multi-plateforme j'en suis arrivé à la
conclusion

C++ + wxWidgets : bien mais difficile (API très variable d'une version à
l'autre, doc parfois incomplète, C++ difficile à appréhender... mais
très rapide)

Python + wxPython : plus simple mais plus lent...

Mono : il faut que ça mûrisse un peu... (surtout Monodevelop qui devrait
avoir un designer d'interface digne de ce nom d'ici peu)

Avatar
R12y
wrote:

Concernant le développement multi-plateforme j'en suis arrivé à la
conclusion
C++ + wxWidgets:
Python + wxPython :


C'est voulu de n'avoir pas mentionné Java? :-)
Moi je dirais Python + Qt (et il y a QtDesigner).

--
Un CMS Français à découvrir: CPS. (http://www.cps-project.org)
Hébergement gratuit de sites Zope, Plone, et CPS: http://www.objectis.org
Un lien qui peut servir:
http://www.google.fr/search?q=aspo+infogerance+serveur

Avatar
noone
C'est voulu de n'avoir pas mentionné Java? :-)
Moi je dirais Python + Qt (et il y a QtDesigner).



oui... parce que "Java ça pue et c'est pas libre" ;-)

Bon en fait je trouve qu'il manque actuellement un IDE Java avec
designer d'interface qui s'appuie sur un SDK libre (gcj, kaffe, etc...)
mais je crois que Fedora bosse sur Eclipse avec un Java libre

mais à part ça je ne pense pas tant de mal que ça de Java... j'ai même
lu quelque part que les applis faites en Java pourrait être plus
réactives si les programmeurs savaient mieux comment fonctionnent les
évènements ;-)

1 2