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 :

Barre d'outil dans un module


Sujet :

wxPython

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 82
    Points : 36
    Points
    36
    Par défaut Barre d'outil dans un module
    Bonjour,
    Je tente désespérément de sortir une barre d'outil de ma fenêtre et de la placer dans un module..
    Est ce que quelqu'un peut m'expliquer, à la lecture de ce code, pourquoi il ne se passe rien ?!?
    J'ai beau cliquer... ça clique pas... Et pourquoi ça clique pas ?

    Merci pour votre réponse.

    Tempo01.py

    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
     
    #!/usr/bin/python
    # -*- coding: cp1252 -*-
     
     
    # Tempo01.py
     
    import wx
    import Tempo02
     
    class SimpleToolbar(wx.Frame):
        def __init__(self, parent, id, title):
            wx.Frame.__init__(self, parent, id, title, size=(300, 200))
     
            Tempo02.MaBarreOutils(parent = self)
     
            self.Centre()
            self.Show(True)
     
     
    app = wx.App()
    SimpleToolbar(None, -1, 'MaBarreOutils')
    app.MainLoop()
    Tempo02

    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
     
    #!/usr/bin/python
    # -*- coding: cp1252 -*-
     
    # Tempo02.py
     
    import wx
     
     
    #-------------------------------------------------------------------------
    class MaBarreOutils(wx.ToolBar):
        """Barre d'outils de la fenêtre principale"""
    #-------------------------------------------------------------------------
        def __init__(self, parent):
           wx.ToolBar.__init__(self, parent)
     
           TBFLAGS = ( wx.TB_HORIZONTAL
                     | wx.NO_BORDER
                     | wx.TB_FLAT
                     )
     
           client = parent
     
           tb = wx.ToolBar(client, style=TBFLAGS)
           sizer = wx.BoxSizer(wx.VERTICAL)
           sizer.Add(tb, 0, wx.EXPAND)
           client.SetSizer(sizer)
     
           tsize = (24,24)
     
           new_bmp =  wx.ArtProvider.GetBitmap(wx.ART_NEW, wx.ART_TOOLBAR, tsize)
           open_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, tsize)
     
           tb.SetToolBitmapSize(tsize)
     
            #tb.AddSimpleTool(10, new_bmp, "New", "Long help for 'New'")
           tb.AddLabelTool(10, "New", new_bmp, shortHelp="New", longHelp="Long help for 'New'")
           parent.Bind(wx.EVT_TOOL, self.OnExit, id=10)
     
            #tb.AddSimpleTool(20, open_bmp, "Open", "Long help for 'Open'")
           tb.AddLabelTool(20, "Open", open_bmp, shortHelp="Open", longHelp="Long help for 'Open'")
           parent.Bind(wx.EVT_TOOL, self.OnExit, id=20)
     
           tb.Realize()
     
        def OnExit(self, event):
           wx.MessageBox("Coucou, je suis dans la Méthode : OnExit(self, evt) ^-^   ", "OnExit(self, evt)")
    .py

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 130
    Points : 115
    Points
    115
    Par défaut
    Et comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    vbox = wx.BoxSizer(wx.VERTICAL)
    vbox.Add(Tempo02.MaBarreOutils(parent = self))
    self.SetSizer(vbox)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Merci de ta réponse.
    Mais curieusement, cela marche partiellement
    En fait, avec ta réponse ou avec mon code, je me suis rendu compte que cela fonctionner quand même... Que ça cliquait mais uniquement lorsque ma sourie se situe sur le bord inferieur des icones... Faut etre vigilant, je ne l'avais pas remarqué avant de poster ^^
    Je ne me l'explique pas... Je pensais qu'il fallait cliquer au milieu de l'icone et non sur la limite inférieure de la barre d'outil... C'est moyennement pratique
    Si quelqu'un a une explication je suis preneur... On dirait un problème de dimensionnement de la frame ou de la barre d'outil. Je donne ma langue au chat ?!?
    Merci de votre répose.
    A+

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Importer un module de barre d'outils dans un script python.
    Bonjour Yachas,

    après avoir jeté un petit coup d'oeil à ta source,
    j'ai modifié ton fichier Tempo02.py pour
    résoudre le problème.
    Regarde bien l'argument "self".

    A+ et bon courage pour la suite.
    Fichiers attachés Fichiers attachés

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Bonjour,
    Et merci d'avoir aidé un pauvre pépère comme moi ^^
    Effectivement, à la lecture de ton code, je comprends un peu mieux pourquoi mon code ne fonctionne pas. j'ai encore quelques difficultés avec le self et le parent. (courage )
    Par contre,je ne m'explique pas pourquoi j'ai un souci avec la variable tsize = (16,16). Naïvement, je pensais que si l'on dimensionnait la variable tsize =(24,24) et la methode "SetToolBitmapSize()" on pouvait modifier la taille des icones de la barre d'outils.
    En fait, je modifie bien la taille des icones, mais pas ma barre d'outils elle meme.
    pourrais tu m'expliqué où j'ai faut ?
    Et dans le cas ou je souhaite augmenter la taille de ma barre d'outils, comment dois je faire ?
    Merci de ta réponse.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Importer un module de barre d'outils avec images (de 16 ou 24... pixels) dans un script python.
    Bonsoir Yachas,

    Je viens de lire ton message et après
    réflexion, voici le script final.

    Compare tes fichiers aux miens,
    cela doit répondre à ta question.


    A un de ces jours...

    PS : ton travail est intérressant.
    Fichiers attachés Fichiers attachés

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Bonjour,
    Effectivement, cela fonctionne correctement avec ton code.
    Et puis, je me suis dit, pourquoi ne pas utiliser mes propres icones que j'ai fabriqué moi meme avec mes petites mains.
    Ce sont des petites icones en format 24x24 en png. Et là, je retrouve la meme problématique que précédement.
    En fait, en passant par les icones de "wx.ArtProvider" cela va bien... Mais pour un autre format ....
    Je n'arrive pas à dimensionner la barre d'outils en fonction de la taille des icones.
    Pourquoi cela n'est il pas possible d'augmenter la taille de cette barre d'outil ?
    si quelqu'un a une idée... Je suis preneur
    Merci de votre réponse

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Importer un module de barre d'outils avec images personnalisées dans un script python.
    Bonsoir,

    - Enregistre tes images à la taille et au format voulu (bmp, png, jpeg...)
    et importe tes images dans la barre d'outils en utilisant la classe wx.Bitmap.

    J'ai joint les fichiers nécessaires à tes besoins.

    Bon courage pour la suite.
    Images attachées Images attachées   
    Fichiers attachés Fichiers attachés

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Bonjour...
    ça marche !!!!
    Bon, en fait, j'avais déjà transformé mes icones en utilisant la classe wx.Bitmap.
    L'andouille que je suis s'est obstiné à garder la classe "mabarreOutil" en ToolBar.
    Il suffisait d'être vigilant, observer ton code, et de la déclarer en Panel... Enfin, je sais pas si je suis clair. (Et pourquoi en panel et pas en Toolbar ?)
    Quoi qu'il en soit, maintenant ça marche.
    Merci à tous de votre aide
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajouter barre d'outil dans excel
    Par chris81 dans le forum VB.NET
    Réponses: 1
    Dernier message: 11/10/2007, 13h28
  2. Réponses: 22
    Dernier message: 03/08/2007, 15h57
  3. Ajouter une barre d'outil dans la barre des tâches
    Par koKoTis dans le forum Windows
    Réponses: 1
    Dernier message: 30/05/2007, 11h04
  4. Création de barres d'outils dans excel 2007
    Par vbanath dans le forum Excel
    Réponses: 1
    Dernier message: 03/05/2007, 22h01
  5. Réponses: 4
    Dernier message: 26/02/2007, 13h20

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