Pages : 1
#1 Le 22/05/2007, à 09:54
- biggione
interface python
Bonjour à toutes et à tous,
Je voudrais savoir comment faire pour développer une application en python et une interface.
Quels sont les paquets a installer. J'ai deja python. Dois je utilisais tkinter en plus?
Il n'y a pas moyen de faire cela comme visual basic on crée une fenetre avec ces elements et on code les evenements en python.
Enfin voila jdébute sur ce langage et je voudrais donc 2-3 renseignements et vos avis.
Merci
Le site pour trouver des logiciels gratuits pour les entreprises: www.kamazotux.fr
Hors ligne
#2 Le 22/05/2007, à 15:25
- ReZ
Re : interface python
Faire de l'interface en python, il y a plusieurs moyens
-tkinter, je crois que c'est inclus de base, c'est le plus moche mais le plus facile à utiliser avec le python
-pyGTK, on peut utiliser glade pour créer ses interfaces mais c'est après où le bat blesse c'est que GTK a la base n'a pas été pensé pour python (et l'objet en général) et c'est assez casse couilles de récupérer les évènements et les propriétés
-pyQT, surement le meilleur mais l'inconvénient c'est que c'est pas souvent mis à jour si mes souvenirs sont bons
-Wxwidgets, le meilleur compromis, mon préféré personnellement.
Si tu viens du monde merveilleux et magique des codeurs visual basic (j'en ai fait partie), pyGTK avec Glade ne te bouleveras pas trop.
#3 Le 22/05/2007, à 20:56
- aleph
Re : interface python
> Wxwidgets , le meilleur compromis, mon préféré personnellement.
Petites précisions.
wxWidgets est "toolkit" graphique pour le langage C++. Il existe des implémentations de ce "GUI" pour différents langages tels que Python, Lua ou Perl pour différentes platformes Windows, "Linux", OS X ou "BSD".
La variante pour le langage Python se nomme wxPython.
wxWidgets (anciennement wxWindows) ou wxPython s'écrivent avec un w et un x minuscules, le w signifiant win32/Windows et x, le système graphique X.
Aujourd'hui s'ajoute en plus une version "native" de wxPython pour OS X. Elle sera incluse par défaut dans la version Leopard de OS X (la version choisie sera probablement la version wxPython 2.8.4.0 bien que le no de version ne soit pas définitvement arrêté).
wxPython : http://www.wxpython.org/
wxWidgets : http://www.wxwidgets.org/
#4 Le 23/05/2007, à 09:01
- biggione
Re : interface python
Donc là sur mon Feisty j'ai python d'installer. Il me suffit donc juste d'ajouter le paquet synaptic:
python-wxtools
C'est cà?
Le site pour trouver des logiciels gratuits pour les entreprises: www.kamazotux.fr
Hors ligne
#5 Le 31/05/2007, à 07:51
- Bykounour
Re : interface python
Bonjour,
biggione tu pourras me tenir informé sur ce poste, je suis dans le même cas que toi...
Merci,
Bon courage
Hors ligne
#6 Le 31/05/2007, à 08:52
- biggione
Re : interface python
ben pour l'instant ca a pas l'air d'avancé mais je perds pas espoir
Le site pour trouver des logiciels gratuits pour les entreprises: www.kamazotux.fr
Hors ligne
#7 Le 31/05/2007, à 09:33
- NicoA380
Re : interface python
Je suis adepte du python et glade, c'est vraiment pratique pour les IHM. Désormais, il y a glade3 qui permet des choses plus complète.
Comme IDE, j'utilise Eclipse + pyDev pour le code (j'ai de la ram ).
et c'est assez casse couilles de récupérer les évènements et les propriétés
Il semble que glade3 fait la génération de code python, mais je m'en étais fait un pour les version antérieur :
glade2pyGenerator.py :
#! env python
# coding: utf-8
import sys
import libxml2
def generate(gladefile,pyfile=None):
window = []
handlers = set()
res = """#! env python
# coding: utf-8
import gtk
from gladeAutoconnect import gladeAutoconnect
"""
glade = libxml2.parseFile(gladefile)
for node in glade:
if(node.get_name() == "widget" and node.prop("class") == "GtkWindow"):
id = node.prop("id")
window.append(id)
res += """class %s(gladeAutoconnect):
def __init__(self):
gladeAutoconnect.__init__(self, "%s", "%s")
"""%(id,gladefile,id)
if(node.get_name() == "signal"):
handler = node.prop("handler")
if handler and not(handler in handlers):
handlers.add(handler)
res += """ def %s(self, source = None, event = None):
print '%s'\n"""%(handler,handler)
if node.prop("name") and node.prop("name") == "delete_event":
res += " gtk.main_quit()\n"
res +="\n"
res += "if __name__ == '__main__':\n"
for i,win in enumerate(window):
res += " win%i = %s()\n" % (i,win)
res += " gtk.main()\n"
if not pyfile: return res
f = open(pyfile,"w",755)
f.write(res)
f.close()
if __name__ == "__main__":
nbarg = len(sys.argv)
if nbarg == 3:
generate(sys.argv[1],sys.argv[2])
elif nbarg == 2:
print generate(sys.argv[1])
else:
print "exit !!"
sys.exit()
gladeAutoconnect.py :
#! env python
# coding: utf-8
import pygtk
pygtk.require('2.0')
import gtk.glade
import gtk
class gladeAutoconnect:
def __init__(self,glade,window):
self.widget = gtk.glade.XML(glade, window)
dico = {} ## dico vide pour commencer
self.dico_recurcif(self.__class__, dico)
self.widget.signal_autoconnect(dico)
def dico_recurcif (self, classe, dico):
bases = classe.__bases__
for iteration in bases:
self.dico_recurcif(iteration, dico) ## Appel recursif
for iteration in dir(classe):
dico[iteration]=getattr(self,iteration)
Il faut utiliser le premier pour générer du code : python glade2pyGenerator.py monIHM.glade monCode.py
Il faut mettre le deuxième script dans le même répertoire que celui du code.
Hors ligne
#8 Le 31/05/2007, à 09:42
- biggione
Re : interface python
donc en gros ce que tu explique c'est que moi je vais développer mon interface sous glade que je nomme monIHM.glade puis le code python (moncode.py)
Et t script font les liens automatiquement?
Mais dois je respecter un standard dans les noms des composants de l'interface...
En fait ma question c'est plus:
imaginons que je veux créer un ptite fenetre contenant le mot "Hello" avec un bouton quiter.
je crée d'abord l'interface sous glade.
et après je réutilise les nom employé sous glade pour coder les évènements.
C ca le principe?
Et tes scripts permettent de lier tout ca?
Désolé je débute en python
Le site pour trouver des logiciels gratuits pour les entreprises: www.kamazotux.fr
Hors ligne
#9 Le 31/05/2007, à 09:51
- Bykounour
Re : interface python
Bonjour,
Dans mes recherches je suis tombé sur un rapport d'étudiant très bien (enfin j'ai pas tout lu encore):
http://www.borer.name/files/eivd/pyqt/rapport_PyQt.pdf
que j'ai trouvé sur le site: http://www.bawet.org/article.php3?id_article=138
Bonne lecture et bon courage
Hors ligne
#10 Le 31/05/2007, à 10:11
- reeth
Re : interface python
Merci pour ce rapport, il a l'air très intéressant.
Hors ligne
#11 Le 31/05/2007, à 10:18
- biggione
Re : interface python
c clair! merci pour ce lien qui répond déjà à pas mal de mes question
Le site pour trouver des logiciels gratuits pour les entreprises: www.kamazotux.fr
Hors ligne
#12 Le 31/05/2007, à 10:22
- Bykounour
Re : interface python
De rien, c'est les rédacteurs de la doc qu'il faut remercier en + comme un gros béta j'avais oublié le lien sur la source: La page source : http://www.borer.name/pti2/2006/07/16/pyqt_rapport_online des fois que vous souhaitiez l'amméliorer/compléter
Hors ligne
#13 Le 31/05/2007, à 10:43
- biggione
Re : interface python
je pense avoir compris pas mal de chose apres cette lecture.
Je voudrais cependant un avis.
QUe pensez vous de Qt4? Qt4 Designer...?
Le site pour trouver des logiciels gratuits pour les entreprises: www.kamazotux.fr
Hors ligne
#14 Le 31/05/2007, à 12:34
- krocket
Re : interface python
je pense avoir compris pas mal de chose apres cette lecture.
Je voudrais cependant un avis.
QUe pensez vous de Qt4? Qt4 Designer...?
QT est orienté pour kde et gtk pour gnome.
Dépend pour quel interface graphique tu .......
De plusieurs programmes ou systèmes d'exploitation en occurrence, le plus performant n'est jamais retenu comme standard !
Bobby sort de là !
Hors ligne
#15 Le 31/05/2007, à 12:38
- biggione
Re : interface python
ben moi je suis sous gnome.
Cela voudrais dire ke je peux pas l'utiliser sous Ubuntu Feisty?
Pourtant j'ai vu que python-qt4 à le logo ubuntu sur le gestionnaire Synaptics
Le site pour trouver des logiciels gratuits pour les entreprises: www.kamazotux.fr
Hors ligne
#16 Le 31/05/2007, à 13:28
- krocket
Re : interface python
Si tu peux mais les utilisateurs gnomes devront installer les librairies qt pour faire fonctionner ton application.
Dernière modification par krocket (Le 31/05/2007, à 13:30)
De plusieurs programmes ou systèmes d'exploitation en occurrence, le plus performant n'est jamais retenu comme standard !
Bobby sort de là !
Hors ligne
#17 Le 31/05/2007, à 13:40
- biggione
Re : interface python
ok bon ben ca marche alors. Merci
Le site pour trouver des logiciels gratuits pour les entreprises: www.kamazotux.fr
Hors ligne
#18 Le 31/05/2007, à 14:39
- aleph
Re : interface python
> biggione
pyGTK ou wxPython reposent sur GTK et sont par conséquent "plus natifs" GNOME. (Un peu plus subtil dans le cas wxPython).
pyQt repose sur Qt, donc "plus natif" pour KDE.
Ce n'est pas le but de mon message. Si tu veux "faire de Python" :
1) Apprends Python
2) Apprends Python
3) Apprends Python
4) Apprends Python
5) Apprends Python
6) Quand tu penses maîtriser Python, commence à programmer une interface graphique.
Arrivé à ce point, tu te rendras compte que le code proposé (glade) plus haut est assez stupide. En effet, la majorité du code ne sert pas à faire fonctionner Python+Gtk, mais à intégrer et gérer glade !
#19 Le 31/05/2007, à 16:41
- NicoA380
Re : interface python
Pour mes scripts, le principe c'est de faire son interface sous Glade, de récupérer le ".glade", ensuite tu utilises mon script qui va générer le code à partir du ".glade".
Donc "python glade2pyGenerator.py monIHM.glade monCode.py" créé le fichier monCode.py, pré-remplit pour charger le Glade, et connecter automatiquement les signaux défini dans Glade (les signaux, ce sont les évènements déclenché par les widgets graphique).
Il faut ce dire qu'un signal = un appel de fonction Python.
Hors ligne
#20 Le 31/05/2007, à 17:24
- Albion
Re : interface python
Salut,
Je suis débutant et j'ai prévu de faire quelques lectures, peut-être que ces liens pourraient t'intéresser :
– Traduction en français du tutoriel pygtk :
Ça m'a l'air pas mal du tout. j'ai juste survolé et regardé les exemples, je pense qu'il y a moyen d'apprendre assez facilement avec cela.
– Ressources Python : on peut télécharger librement le livre Apprendre à programmer avec Python paru aux éditions O'Reilly, ainsi que le code source des exemples
#21 Le 13/06/2007, à 14:44
- biggione
Re : interface python
Voilà en gros j'ai choisi finalement eclipse + plugin pyDev
Et Glade pour les interfaces
Au fait merci pour les tutos.
Le site pour trouver des logiciels gratuits pour les entreprises: www.kamazotux.fr
Hors ligne
#22 Le 13/06/2007, à 15:45
- NicoA380
Re : interface python
Tu nous feras voir le résultat
Hors ligne
#23 Le 13/06/2007, à 16:21
- biggione
Re : interface python
ben la jdebute donc pour l'instant je ne fait pas des trucs exceptionnels mais promis si un jour je fais un truc qui sert, je vous le fait savoir!
Merci en tout cas pour toutes vos infos.
Le site pour trouver des logiciels gratuits pour les entreprises: www.kamazotux.fr
Hors ligne
Pages : 1