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.

#26 Le 03/11/2006, à 15:20

Crashforburn

Re : Premier logiciel sous linux

LR a écrit :
Crashforburn a écrit :

Non, ça marche pas pour du python, enfin peut-être que si tu développes l'interface en GTK+ et la libglade sous python, ça doit pouvoir passer wink Mais dans ce cas tu n'utiliserais que Glade, car à ma connnaissance Anjuta ne fait que du C/C++ (je suis clair ? big_smile)

Sinon en IDE python : SPE (stani's python editor) et comme RAD, je sais pas

Ben à vrai dire, ce n'est pas tellement clair wink C'est quoi le rapport entre glace et anjuta ? Et c'est quoi libglade ?

- Glade permet de construire l'interface.
- Anjuta permet de programmer en C/C++, de faire un projet GTK+ avec inclusion des libs et des headers par défaut.
Alors Glade produit soit des fichiers .c à partir de ce que tu as construit, soit des fichiers glade...Et si tu produits des fichiers glade, tu pourras les lire avec la libglade wink

Voilà, tout à l'heure je m'étais mal exprimé tongue


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

#27 Le 03/11/2006, à 15:26

LR

Re : Premier logiciel sous linux

merci beaucoup smile j'ai beau avoir qq années de développement derrière moi, je me plonge là dans un nouveau monde wink

Dernière modification par LR (Le 03/11/2006, à 16:21)

Hors ligne

#28 Le 03/11/2006, à 16:18

Crashforburn

Re : Premier logiciel sous linux

Oui, t'inquiètes pas ça viendra smile La communauté t'aidera toujours quand elle le pourra ^^


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

#29 Le 03/11/2006, à 19:36

ghoenner

Re : Premier logiciel sous linux

A noter qu'il existe aussi un plug-in pour Eclipse, pyDev (sur les dépôts) qui permet ... de développer en python avec l'IDE Eclipse.
A vrai dire, je n'ai pas encore essayé et ne sais pas ce que ça vaut.

A voir.

Hors ligne

#30 Le 03/11/2006, à 19:40

kezar

Re : Premier logiciel sous linux

Ouais enfin eclipse faut aimer

Hors ligne

#31 Le 05/11/2006, à 01:29

LR

Re : Premier logiciel sous linux

Je commence à regarder un peu python. J'ai fait deux ou trois petits essais et j'ai installé PyDev dans  eclipse. Ca a l'air de marcher, y compris le debugger.

Par contre, je ne sais pas trop comment faire pour l'interface graphique.

wxPython doit me permettre de dessiner des fenêtres, des boutons etc. de manière portable. Dans synaptic, j'ai python-wxversion installé.

A partir de là, je devrais être capable de faire qqch comme ça :

lilian@lilian:~$ python
Python 2.4.3 (#2, Oct  6 2006, 07:49:22)
[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from wxPython.wx import *
>>> fr = wxFrame(None, -1, "Hello World")
>>> p = wxPanel(f, 1)
>>> b = wxButton(p, -1, "Click me!", (10,10))
>>> f.Show()

mais j'obtiens une erreur :

lilian@lilian:~$ python
Python 2.4.3 (#2, Oct  6 2006, 07:49:22)
[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from wxPython.wx import *
>>> fr = wxFrame(None, -1, "Hello World")
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.4/site-packages/wx-2.5.3-gtk2-unicode/wx/_windows.py", line 407, in __init__
    newobj = _windows_.new_Frame(*args, **kwargs)
wx._core.PyNoAppError: The wx.App object must be created first!

J'ai aussi essayé de doller ça dans un fichier .py :

from wxPython.wx import *
f = wxFrame(None, -1, "Hello World")
p = wxPanel(f, 1)
b = wxButton(p, -1, "Click me!", (10,10))
f.Show()

Et j'obtiens ça :

Traceback (most recent call last):
  File "/home/lilian/dev2/backup/test/src/root/nested/example.py", line 2, in ?
    f = wxFrame(None, -1, "Hello World")
  File "/usr/lib/python2.4/site-packages/wx-2.5.3-gtk2-unicode/wx/_windows.py", line 407, in __init__
    newobj = _windows_.new_Frame(*args, **kwargs)
wx._core.PyNoAppError: The wx.App object must be created first!

J'ai trouvé cet exemple sur le site de wxPython, dans les screenshots...

Ensuite, j'aimerai peut-être dessiner les fenêtres avec un outil graphique. Donc si j'ai bien compris, je peux utiliser Glade pour ça, qui va me produire un fichier .glade que je pourrai utiliser depuis python grace à libglade (j'ai bien un paquet libglade installé).

J'ai libglade0 installé.

J'ai installé glade et aussi python-wxglade. J'imagine qu'il faut que j'utilise python-wxglade ?

Dernière modification par LR (Le 05/11/2006, à 01:29)

Hors ligne

#32 Le 05/11/2006, à 01:34

kezar

Re : Premier logiciel sous linux

Regarde par là pour python ça peut être sympa : http://sebsauvage.net/python/
en particulier ici http://sebsauvage.net/python/gui/index_fr.html

Hors ligne

#33 Le 05/11/2006, à 11:56

aleph

Re : Premier logiciel sous linux

> LR

- Tous les messages d'erreur que tu obtiens sont normaux et identifient clairement les erreurs.
- Tout ce dont tu as besoin, c'est d'un éditeur, de Python et de wxPython.
- Copie l'exemple ci-dessous dans un éditeur (gedit) et exécute l'application.
- Etudie le code proposé. Il contient sous une forme minimale à peu près tous les ingrédients de base de Python/wxPython.
- Pour le moment, évite d'utiliser Glade et des outils de ce genre.
- L'en-tête indique Python 2.5 et wxPython 2.7.x.x. Ce code fonctionne avec Python 2.4 et wxPython <= 2.7 mais > 2.4 .
- Eventuellement modifie l'encodage.
- Le site proposé par kezar est bon et les exemples sont à jour.

A prendre en considération :
Le code proposé correspond à ce que doit être du code wxPython à partir d'aujourd'hui et pour l'avenir. (Pour être honnête, il y a une petite amélioration en cours, mais qui n'a aucun impact sur le code proposé).

Voici un exemple qui illustre la situation:
from wxPython.wx import * est obsolète et ne doit plus être utilisé. Valide jusqu'à et y compris wxPython 2.6.x.
from wxPython.wx import * génère un "DepracationWarning" à partir de wxPython 2.7 et probablement une erreur dans le versions suivantes.
Il faut utiliser import wx.

Malheureusement, les pages wiki du site wxPython ne sont pas toutes à jour. wxWidgets/wxPython évolue très vite. Les collaborateurs n'ont pas toujours le temps et la disponibilité nécessaire.

Bien, du plaisir avec Python/wxPython

# -*- coding: iso-8859-1 -*-
#--------------------------------------------------------------------
# Name:      FramePanelButStatxtTextCtrlWinSizer.py
# Purpose:   Template module
# Author:    Jean-Michel Fauth, Switzerland
# Copyright: (c) 2006 Jean-Michel Fauth
# Licence:   GPL
#--------------------------------------------------------------------
# os dev:    w2k sp4
# py dev:    Python 2.5
# wx dev:    wxPython 2.7.1.3
# Revision:  ... 2006
#--------------------------------------------------------------------
# frame + panel + button + statictext + textctrl + window
# packed with a sizer
#--------------------------------------------------------------------

import wx

#--------------------------------------------------------------------

class MyPanel(wx.Panel):
    
    def __init__(self, parent, id):
        wx.Panel.__init__(self, parent, id, wx.DefaultPosition, wx.DefaultSize)
        self.parent = parent

        self.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, 'Verdana'))

        self.but = wx.Button(self, wx.NewId(), 'button', wx.DefaultPosition, wx.DefaultSize)
        self.but.Bind(wx.EVT_BUTTON, self.OnClick1)
        
        self.statxt = wx.StaticText(self, wx.NewId(), 'static text', wx.DefaultPosition, wx.DefaultSize, wx.ST_NO_AUTORESIZE)
        self.statxt.SetBackgroundColour(wx.WHITE)

        self.txt = wx.TextCtrl(self, wx.NewId(), 'text control', wx.DefaultPosition, wx.DefaultSize)

        #force a minimal size
        si = (300, 200)
        self.win = wx.Window(self, wx.NewId(), wx.DefaultPosition, si, wx.NO_BORDER)
        self.win.SetBackgroundColour(wx.GREEN)

        b = 8
        vsizer1 = wx.BoxSizer(wx.VERTICAL)
        vsizer1.Add(self.but, 0, wx.ALL, b)
        vsizer1.Add(self.statxt, 0, wx.GROW | wx.ALL, b)
        vsizer1.Add(self.txt, 0, wx.GROW | wx.ALL, b)
        vsizer1.Add(self.win, 1, wx.EXPAND | wx.ALL, b)

        self.SetSizerAndFit(vsizer1)
        self.parent.SetClientSize(vsizer1.GetSize())
        self.parent.CentreOnScreen()

    def OnClick1(self, event):
        print 'OnClick1'
        
#--------------------------------------------------------------------

class MyFrame(wx.Frame):

    def __init__(self, parent, id, title, pos, size, style):
        wx.Frame.__init__(self, parent, id, title, pos, size, style)
        
        self.panel = MyPanel(self, wx.NewId())

        self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)

    def OnCloseWindow(self, event):
        self.Destroy()

#--------------------------------------------------------------------

class MyApp(wx.App):
    
    def OnInit(self):
        sty = wx.DEFAULT_FRAME_STYLE
        title = __file__
        frame = MyFrame(None, wx.ID_ANY, title, wx.DefaultPosition, wx.DefaultSize, sty)
        frame.Show(True)
        self.SetTopWindow(frame)
        return True

#--------------------------------------------------------------------

def main():
    app = MyApp(False)
    app.MainLoop()

#--------------------------------------------------------------------

if __name__ == "__main__":
    main()

#eof-----------------------------------------------------------------

#34 Le 05/11/2006, à 14:38

LR

Re : Premier logiciel sous linux

Merci aleph, je n'ai pas encore compris les messages d'erreur que j'ai obtenu avant mais en tout cas le code que tu m'as fournit fonctionne et il constitue effectivement une très bonne introduction.

Comme je compte me lancer dans le développement d'un logiciel libre, je vais avoir pas mal d'autres considérations à prendre en compte. Dont la première est l'espace de collaboration du projet.

Que me conseillez-vous, sourceforge (à priori l'interface me semble imbitable mais je n'ai pas étudié toutes les possibilités de cet outil ni la procédure pour avoir un dépôt CVS ou subversion) ?

Je suis bien conscient que toutes mes questions trouvent leurs réponses dans les différentes documentations qu'on trouve sur le web et ça ne me fait pas peur de chercher. Mais ce n'est pas toujours facile et si des connaisseurs passent par là, je suis heureux qu'ils m'éclairent et me fassent gagner du temps smile

Merci encore

Hors ligne

#35 Le 05/11/2006, à 16:41

aleph

Re : Premier logiciel sous linux

Tant mieux si le code que je t'ai donné fonctionne au "premier coup" (je n'en suis pas surpris), néanmoins c'est peut-être l'arbre qui cache la forêt.

Tes questions sont complexes et vont un peu au-delà de la programmation proprement dite. Je vais tenter d'y apporter quelques éléments de réponses. Attends-toi à quelques suprises...

Si tu choisis le couple Python/wxPython pour ton projet, restes-y et tiens toi à ce couple. Il faut des mois pour maîtriser correctement ces outils. Ceci est vrai pour tous les langages et tous les gui.

Python et wxPython possèdent une excellente documentation, téléchargeable et consultable hors ligne. La démonstration de wxPython contient le code d'à peu près tous les composants disponibles.
Voir les sites Python et wxPython. Il n'est pas nécessaire de courrir le web à la recherche d'informations. Les aides mentionnées couvrent 99% des besoins.

Pour les problèmes et questions, c'est ici http://lists.wxwidgets.org/cgi-bin/ezmlm-cgi/11 .
C'est le lieu de référence et c'est là que tous les développeurs wxPython discutent.
L'anglais petit nègre est très bien toléré.

La meilleure façon de coder est d'utiliser ses dix doigts et un éditeur. Ceci est très important. Les développeurs wxPython travaillent sur toutes les platformes; du code pur permet un meilleur échange de code entre les platformes. Je travaille sous Windows 2000 + sp4 et n'ai jamais eu un problème avec du code généré sous Linux. Le code que j'ai proposé est un exemple, il a été écrit sous Windows.

Pour ce qui est d'un projet collaboratif. Ne commence pas par ouvrir un projet sous SourceForge ou un autre site. Tu vas tout droit contre le mur. Il faut en premier lieu développer et proposer une application solide et déjà bien élaborée. La raison est simple. Si tu proposes du code de mauvaise qualité ou non mature (probablement ton cas, puisque tu es débutant sous wxPython), tu ne pourras que faire fuir ou désintéresser un éventuel contributeur plus expérimenté. Rien n'empêche cependant de travailler dans un cercle plus fermé.

Pour voir ce que l'on peut faire avec Python/wxPython, mon site http://spinecho.ifrance.com/

Il y en a bien d'autres.

Bon vent.

#36 Le 05/11/2006, à 17:18

LR

Re : Premier logiciel sous linux

aleph a écrit :

Si tu choisis le couple Python/wxPython pour ton projet, restes-y et tiens toi à ce couple. Il faut des mois pour maîtriser correctement ces outils. Ceci est vrai pour tous les langages et tous les gui.

C'est bien ce que je compte faire, et je ne prétend pas devenir rapidement expert.

aleph a écrit :

Python et wxPython possèdent une excellente documentation, téléchargeable et consultable hors ligne. La démonstration de wxPython contient le code d'à peu près tous les composants disponibles.
Voir les sites Python et wxPython. Il n'est pas nécessaire de courrir le web à la recherche d'informations. Les aides mentionnées couvrent 99% des besoins.

OK merci. Le site de wxPython ne fonctionne pas aujourd'hui hmm

aleph a écrit :

Pour les problèmes et questions, c'est ici http://lists.wxwidgets.org/cgi-bin/ezmlm-cgi/11 .
C'est le lieu de référence et c'est là que tous les développeurs wxPython discutent.
L'anglais petit nègre est très bien toléré.

C'est noté

aleph a écrit :

La meilleure façon de coder est d'utiliser ses dix doigts et un éditeur. Ceci est très important. Les développeurs wxPython travaillent sur toutes les platformes; du code pur permet un meilleur échange de code entre les platformes. Je travaille sous Windows 2000 + sp4 et n'ai jamais eu un problème avec du code généré sous Linux. Le code que j'ai proposé est un exemple, il a été écrit sous Windows.

J'imagine que par là tu reviens à ton conseil de ne pas utiliser glade pour le moment... Est-ce que ça signifie que le code généré n'est pas "propre" ? Je sais bien qu'il faut que je commence par le faire à la main mais une fois qu'on a compris comment ça marche, c'est tout de même plus agréable de disposer les éléments graphiquement...

aleph a écrit :

Pour ce qui est d'un projet collaboratif. Ne commence pas par ouvrir un projet sous SourceForge ou un autre site. Tu vas tout droit contre le mur. Il faut en premier lieu développer et proposer une application solide et déjà bien élaborée. La raison est simple. Si tu proposes du code de mauvaise qualité ou non mature (probablement ton cas, puisque tu es débutant sous wxPython), tu ne pourras que faire fuir ou désintéresser un éventuel contributeur plus expérimenté. Rien n'empêche cependant de travailler dans un cercle plus fermé.

Je ne parlais pas d'un lancement officiel en grandes pompes wink, mais il y a déjà une personne (ghoenner) qui s'est proposé alors je vais devoir mettre en place un gestionnaire de versions et je ne sais pas trop où faire ça...

aleph a écrit :

Pour voir ce que l'on peut faire avec Python/wxPython, mon site http://spinecho.ifrance.com/

Il y en a bien d'autres.

Bon vent.

Merci à toi pour tous ces conseils.

Dernière modification par LR (Le 05/11/2006, à 17:19)

Hors ligne

#37 Le 05/11/2006, à 18:25

aleph

Re : Premier logiciel sous linux

Effectivement wxPython semble hors service pour le moment.

---

Quand on est deux à commencer un projet, il me semble qu'un simple échange de fichiers est le plus simple. Commencer par installer un gestionnaire quand on a encore aucune ligne de code n'est peut-être pas le plus approprié. Dans le cas de Python, jouer avec la modularité est bien plus simple.

---

> J'imagine que par là tu reviens à ton conseil de ne pas utiliser glade pour le moment... Est-ce que ça signifie que le code généré n'est pas "propre" ? Je sais bien qu'il faut que je commence par le faire à la main mais une fois qu'on a compris comment ça marche, c'est tout de même plus agréable de disposer les éléments graphiquement...

Vaste débat. La réponse est clairement oui. La question revient régulièrement sur wxPython-users list et la réponse est toujours la même.
...
Justement une fois que l'on a compris comment ça marche, tu verras que c'est bien plus simple à la main. Essaie d'ajouter un bouton à l'application proposée.