IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

wxPython Discussion :

Apprentissage de wxPython


Sujet :

wxPython

  1. #1
    Membre averti
    Enseignant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut Apprentissage de wxPython
    Salut à tous,

    J'essaye de me mettre à wxPython et j'ai vraiment du mal, il faut que j'oublie mes habitudes avec Tkinter .

    Voilà un premier essai plus que simple (je voudrais que le script reste comme affiché pour l'instant, sans la gestion de classes) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    #! /usr/bin/python
    # -*- coding: utf-8 -*-
     
     
    import wx
     
     
    def toto1(event) :
        print " hello world 1"
     
        for parc in range(100000) :
            gauge1.SetValue(pos=parc)
            print parc
     
     
    def toto2(event) :
        print " hello world 2"
     
     
    def toto3(event) :
        y=12
        yy=(y**3)-(3*487)
        return yy
     
     
    # ---------------------------------------------------------------
    app = wx.App()
     
    frame=wx.Frame(None, title='Essai Perso wxPython', pos=(350,300))
    frame.Center()
    frame.Show()
    # ---------------------------------------------------------------
     
    def essai() :
     
        panel_1=wx.Panel(frame, 1)
     
        # Barre de progression --------------------------------
        global gauge1
     
        gauge1=wx.Gauge(panel_1, -1, 100, (10, 70), (350, 25))
        gauge1.Update()
        # -----------------------------------------------------
     
        b1=wx.Button(panel_1, 1, "Bouton1", (10,20))
        b1.Bind(wx.EVT_BUTTON, toto1, id=1)
        b1.Show()
     
        b2=wx.Button(panel_1, 2, "Bouton2", (100,20))
        b2.Bind(wx.EVT_BUTTON, toto2, id=2)
        b2.Show()
     
        b3=wx.Button(panel_1, 3, "Bouton3", (190,20))
        b3.Bind(wx.EVT_BUTTON, toto3, id=3)
        b3.Show()
     
        app.MainLoop()
     
     
    essai()
    Voilà les problèmes :

    1) il ne se passe rien quand je clique sur le bouton b3, la fonction toto3 n'est pas activée pourquoi ? (toto1 et toto2 fonctionnent) .

    2) gauge1 ne fonctionne pas correctement dans la fonction toto1 (j'ai dû me planter quelque part) . La jeauge ne se rafraîchit qu'une fois que la boucle est terminée .

    Pouvez-vous m'aider ? .

    a+

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Par défaut
    Bonjour,

    Bon, c'est pas moi qui vais t'aider beaucoup (je viens de commencer Python depuis 2 semaines), mais d'après ce que j'ai cru comprendre, les objets wxPython ne peuvent s'utiliser qu'avec des classes.

    Je te conseille d'utiliser la super démo qui est sur le site de wxPython : Il y a des exemples d'utilisation de frames et de la jauge :
    http://www.wxpython.org/download.php

    A +.

    (J'espère que j'ai pas dit d'âneries)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Par défaut
    Salut ! Je débute aussi mais voilà les quelques constations que j'ai pu faire:

    - ton code ne fonctionne en l'état sur ma config (j'ai donc dû apporter quelques légères modifications): python 2.5/wxPython 2.8.4.0/fedora

    - apparemment ta première procédure toto1 tourne presque à vide et il semblerait que la classe n'ait pas le temps de se rafraîchir.

    - toto3 est bien exécutée mais elle ne produit aucun résultat visible (elle retourne une valeur dont tu ne fais rien)

    Ton code modifié étaye mes constations:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    #! /usr/bin/python
    # -*- coding: utf-8 -*-
     
     
    import wx
    import time 
     
    def toto1(event) :
        print " hello world 1"
     
        for parc in range(100) :
            gauge1.SetValue(pos=parc)
            gauge1.Update()
            time.sleep(0.05)        
            print parc
     
     
    def toto2(event) :
        print " hello world 2"
     
     
    def toto3(event) :
        y=12
        yy=(y**3)-(3*487)
        print "toto3"
        return yy
     
     
    # ---------------------------------------------------------------
    app = wx.App()
     
     
    # ---------------------------------------------------------------
     
    def essai() :
        global frame
        frame=wx.Frame(None, title='Essai Perso wxPython', pos=(350,300))
        frame.Center()
     
        panel_1=wx.Panel(frame, -1)
     
        # Barre de progression --------------------------------
        global gauge1
     
        gauge1=wx.Gauge(panel_1, -1, 100, (10, 70), (350, 25))
        gauge1.Update()
        # -----------------------------------------------------
     
        b1=wx.Button(panel_1, 1, "Bouton1", (10,20))
        b1.Bind(wx.EVT_BUTTON, toto1, id=1)
        b1.Show()
     
        b2=wx.Button(panel_1, 2, "Bouton2", (100,20))
        b2.Bind(wx.EVT_BUTTON, toto2, id=2)
        b2.Show()
     
        b3=wx.Button(panel_1, 3, "Bouton3", (190,20))
        b3.Bind(wx.EVT_BUTTON, toto3, id=3)
        b3.Show()
        frame.Show()
     
     
     
     
    essai()
    app.MainLoop()

  4. #4
    Membre averti
    Enseignant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    Merci pour ta réponse . Tes modifications ne fonctionnent pas mieux chez moi . Entretemps je me suis intéressé à PyQt (et QT Designer), mais je garde un oeil sur wxPython quand même .

    a+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 27
    Par défaut
    les demos donnent de bonnes bases, essaye aussi de faire ta gui avec boa-constructor (si tu es sous windows) ((sous linux ca fonctionne beaucoup moins bien)) .. comme ca bien que le code soit generique ca te permettras quand meme de voir une facon de le coder..

  6. #6
    Membre averti
    Enseignant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    Citation Envoyé par [tLb] Voir le message
    les demos donnent de bonnes bases, essaye aussi de faire ta gui avec boa-constructor (si tu es sous windows) ((sous linux ca fonctionne beaucoup moins bien)) .. comme ca bien que le code soit generique ca te permettras quand meme de voir une facon de le coder..
    Merci pour ta réponse . Non je ne suis pas sous windows (je suis avec ma Kubuntu bien aimée) . Très franchement j'aime pas Boa-Constructor (remarque je n'ai pas tellement de recul non plus dans le domaine), je préfère et de loin QT Designer (ça me convient mieux) ... ah les goûts et les couleurs .

    Je n'ai pas vu de démo traitant exactement ce que je veux faire .

    a+

Discussions similaires

  1. apprentissage non supervisé .......
    Par ratbert dans le forum Statistiques, Data Mining et Data Science
    Réponses: 7
    Dernier message: 22/02/2008, 12h23
  2. Contrat d'apprentissage
    Par bartmarley dans le forum Emploi
    Réponses: 6
    Dernier message: 08/07/2004, 18h04
  3. Apprentissage
    Par le Daoud dans le forum Intelligence artificielle
    Réponses: 6
    Dernier message: 01/04/2004, 16h21
  4. apprentissage du C est-il necessaire pour C++ ?
    Par Anonymous dans le forum C
    Réponses: 6
    Dernier message: 02/05/2002, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo