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 :

SetDefaultStyle pour un TextCtrl wxPython3.0.1


Sujet :

wxPython

  1. #1
    Membre à l'essai
    Homme Profil pro
    retraité, actif ??
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : retraité, actif ??
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 19
    Points
    19
    Par défaut SetDefaultStyle pour un TextCtrl wxPython3.0.1
    Bonjour

    J'ai déjà ouvert une discussion sur un sujet approchant et qui et résolue
    TxtCtrl, saisie de chiffres et couleurs successives (post 8121174)

    Depuis je suis passé de Wheezy7.8 à Jessie et la version ds wxPython est alors passée de 2.8 à 3.0.1. Et alors le problème est arrivé !

    voici le code qui va bien avec Wheezy
    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
     
    #!/usr/bin/python
    # coding: utf-8 
    #
    # n: nombre de chiffres
    # i: indice pour la liste des couleurs i%3 ; et limite la longueur de la saisie
    #
    import wx
     
    nb = 3     # ne pas dépasser 7 !!, arbitraire ici.
    i = 0
    dys_color = [ 'GREEN','RED','BLUE']
     
    def onCharEvent(event):
     
        keycode = event.GetKeyCode()
        if keycode in range(48,58):
            #
            i = text.GetLastPosition()
            if i >= nb:
                i = nb
                text.SetInsertionPoint(nb)
            else:
                text.SetDefaultStyle(wx.TextAttr(dys_color[i%3]))
                text.AppendText(chr(keycode))
    app = wx.App(False)
    frame = wx.Frame(None)
    panel = wx.Panel(frame)
    text = wx.TextCtrl(panel,-1, style= wx.TE_MULTILINE, size=(100,35))
    font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT)
    font.SetPointSize(20)
    text.SetFont(font)
    text.Bind(wx.EVT_CHAR, onCharEvent)
    frame.Show()
    app.MainLoop()
    Ce même code avec Jessie (Python 2.7 et wxPython3.0.1) me retourne cette erreur:
    Exception RuntimeError: 'maximum recursion depth exceeded' in ignored
    Traceback (most recent call last):
    File "Nombre_dys-color_03.py", line 28, in onCharEvent
    text.SetDefaultStyle(wx.TextAttr(la_couleur[i]))
    RuntimeError: maximum recursion depth exceeded
    Là je ne vois pas le pourquoi de la récursion ???

    Merci de vos éclairages.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Je peux me tromper sur ton code mais il me semble que, lors d'un event, un caractère est ajouté qui déclenche un nouvel event qui ajoute un caractère qui .....

  3. #3
    Membre à l'essai
    Homme Profil pro
    retraité, actif ??
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : retraité, actif ??
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Je peux me tromper sur ton code mais il me semble que, lors d'un event, un caractère est ajouté qui déclenche un nouvel event qui ajoute un caractère qui .....
    Merci pour la suggestion, comme ce script ne pose pas de problème avec wxPython2.8 je n'ai pas ajouté event.Skip()
    Je viens de corriger cela en ajoutant, après la ligne 25 event.Skip()
    Cela n'a rien changé, même code d'erreur.

    A suivre...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Salut,

    La seule chose que je peux dire c'est que je ne reproduit pas ce problème sur un wxPython 3.0.2.0 sur Windows.
    Ça vaut peut être le coup de faire cette mise à jour même si "wx" a parfois des comportements différents d'un OS à l'autre.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre à l'essai
    Homme Profil pro
    retraité, actif ??
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : retraité, actif ??
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    bonjour wiztricks,

    quelle mise à jour me proposez-vous ?? Python ou wx ? les versions installées n'ont pas d'upgrade avec Debian-Jessie.
    Il me reste la possibilité de compiler la derrière version de wx .

    Je puis aussi aller voir du côté de pyGTK ??

    A suivre..

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Citation Envoyé par pancrace Voir le message
    quelle mise à jour me proposez-vous ?? Python ou wx ? les versions installées n'ont pas d'upgrade avec Debian-Jessie.
    Il me reste la possibilité de compiler la derrière version de wx .

    Je puis aussi aller voir du côté de pyGTK ??
    Si c'est pour faire un "test", vous pourriez essayer d'installer wx depuis "testing".
    Mais si le GUI que vous voulez utiliser est sans importance, vous pourriez aussi utiliser tkinter ou Qt.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. La Methode SetDefaultStyle de TextCtrl
    Par ashanka dans le forum Général Python
    Réponses: 1
    Dernier message: 29/03/2012, 15h44
  2. utiliser une scrollbar pour un textctrl
    Par timiti29 dans le forum wxPython
    Réponses: 5
    Dernier message: 14/12/2009, 18h16
  3. Réponses: 2
    Dernier message: 16/09/2009, 23h32
  4. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 22h33
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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