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 :

changer l'image d'un wx.StaticBitmap


Sujet :

wxPython

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Par défaut changer l'image d'un wx.StaticBitmap
    Bonjour,
    J'ai un petit bout de code obtenu "maladroitement" à partir de quelques demos... Une image est chargée dans un panel et un clic de souris affiche les coordonnées du pixel.
    J'aimerais que l'événement OnLeftDown fasse changer l'image (vers image1.png par exemple)
    Quelqu'un saurait-il m'aider ?
    Merci d'avance...

    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
     
    import wx
    import cStringIO
     
    class MyFrame(wx.Frame):
        """create a color frame, inherits from wx.Frame"""
        def __init__(self, parent):
            # -1 is the default ID
            wx.Frame.__init__(self, parent, -1, "Click for mouse position", size=(800,540),
                             style=wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE )
           	#self.SetBackgroundColour('Goldenrod')
            imageFile = 'image0.png'
            data = open(imageFile, "rb").read()
            # convert to a data stream
            stream = cStringIO.StringIO(data)
            # convert to a bitmap
            bmp = wx.BitmapFromImage( wx.ImageFromStream( stream ))
    	self.Panel0 = wx.Panel(self,size=(80,540),pos=(0,0))
    	self.Panel = wx.Panel(self,size=(720,540),pos=(80,0))
    	self.Bitmap = wx.StaticBitmap(self.Panel, -1 ,bmp , pos=(0,0))
    	wx.EVT_ENTER_WINDOW(self.Panel, self.ChangeCursor)
    	wx.EVT_LEFT_DOWN(self.Bitmap,   self.OnLeftDown)
            wx.EVT_RIGHT_DOWN(self.Bitmap,   self.OnRightDown)
     
        def ChangeCursor(self, event):
            self.Bitmap.SetCursor(wx.StockCursor(wx.CURSOR_BULLSEYE))
     
     
        def OnLeftDown(self, event):
            """left mouse button is pressed"""
            pt = event.GetPosition()  # position tuple
            print pt
            self.SetTitle('LeftMouse = ' + str(pt))
     
     
        def OnRightDown(self, event):
            """right mouse button is pressed"""
            pt = event.GetPosition()
            print pt
            self.SetTitle('RightMouse = ' + str(pt))
     
     
    app = wx.PySimpleApp()
    frame = MyFrame(None)
    frame.Show(True)
    app.MainLoop()

  2. #2
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    Il suffit d'appliquer la méthode SetBitmap(monbitmap).

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        def OnLeftDown(self, event):
            """left mouse button is pressed"""
            pt = event.GetPosition()  # position tuple
            print pt
            self.SetTitle('LeftMouse = ' + str(pt))
            imageFile = 'image1.png'
            data = open(imageFile, "rb").read()
            # convert to a data stream
            stream = cStringIO.StringIO(data)
            # convert to a bitmap
            bmp = wx.BitmapFromImage( wx.ImageFromStream( stream ))
            self.Bitmap.SetBitmap(bmp)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Par défaut
    Merci GuiGui, ça fonctionne très bien !
    Et quelle rapidité...
    Génial !

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

Discussions similaires

  1. [FLASH MX2004] Changer l'image d'un bouton
    Par exe dans le forum Flash
    Réponses: 3
    Dernier message: 05/12/2004, 14h26
  2. [JLabel] changer une image
    Par dadg dans le forum Composants
    Réponses: 5
    Dernier message: 28/09/2004, 10h28
  3. Comment changer l'image Bitmap en fond d'écran du bureau ?
    Par Maddelphi dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 23/06/2004, 19h57
  4. changer l'image d'arrière plan du bureau
    Par etenclin dans le forum MFC
    Réponses: 7
    Dernier message: 22/08/2002, 15h54
  5. Changer l'image d'une texture
    Par alltech dans le forum DirectX
    Réponses: 5
    Dernier message: 21/08/2002, 01h31

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