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 :

placer un event pour une image


Sujet :

wxPython

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    761
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 761
    Points : 2 102
    Points
    2 102
    Par défaut placer un event pour une image
    Bonjour ,
    J'ai réussis a créer un event sur sur image dans un scrolledwindow:

    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
     
    #!/usr/bin/python
    # -*- coding: iso-8859-15 -*-
     
    import wx
     
    class Affichage(wx.Frame):
        def __init__(self, titre):
            wx.Frame.__init__(self, None, 1, title = titre, size = (400, 400))
     
     
            self.graphicFilename = 'cowgirl_gunslinger_by_mjranum_stock.png'
            #pos_x,pos_y=self.win_scroll.GetViewStart()
            pos_x,pos_y=(0,0)
     
            sizer = wx.BoxSizer()#Sizer pour le win_scroll
     
            self.win_scroll=wx.ScrolledWindow(self)
     
            sizer.Add(self.win_scroll, 1, wx.EXPAND|wx.ALL, 2)
            self.SetSizer(sizer)
     
            self.img = wx.Image( self.graphicFilename, wx.BITMAP_TYPE_ANY )
            #self.img_bmp =self.img.ConvertToBitmap()
            self.img_bmp=wx.EmptyBitmap(200, 500)
     
            self.win_scroll.SetVirtualSize(wx.Size(self.img_bmp.GetWidth(),self.img_bmp.GetHeight()))
     
            #self.Pnl = wx.Panel(self,size=(200,200))
     
            self.static_bmp = wx.StaticBitmap(self.win_scroll, 1 ,self.img_bmp)
            self.win_scroll.SetScrollRate(1,1)#a verifier
     
            self.win_scroll.Scroll(0,0)
            self.win_scroll.Refresh()
     
            wx.EVT_LEFT_DOWN(self.static_bmp,   self.OnLeftDown)
     
        def OnLeftDown(self, event):
                pt_pos = event.GetPosition()  # position tuple
                print ('position mouse dans l image : = ' + str(pt_pos))
                self.SetTitle(str(pt_pos))
     
     
    class MonApp(wx.App):
        def OnInit(self):
            fen = Affichage("Exemple 1")
            fen.Show(True)
            self.SetTopWindow(fen)
            return True
     
    app = MonApp()
    app.MainLoop()
    Jusque la pas de problème, mais je n'arrive pas a voir ou mettre "wx.EVT_LEFT_DOWN(self.static_bmp, self.OnLeftDown)" lorsque l'image n'est pas charger. Ca déclenche une erreur sinon comme le programme n'en détecte pas.

    Sauriez vous la manière dont il faut le placer pour éviter qu'il ne se déclenche avant qu'une image soit chargé?

    Bonne journée,

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut
    Je n'ai pas bien compris ta question mais est-ce que ceci résout le problème ?

    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
    #!/usr/bin/python
    # -*- coding: iso-8859-15 -*-
     
    import wx
     
    class Affichage(wx.Frame):
        def __init__(self, titre):
            wx.Frame.__init__(self, None, 1, title = titre, size = (400, 400))
     
     
            self.graphicFilename = 'cowgirl_gunslinger_by_mjranum_stock.jpg'
            #pos_x,pos_y=self.win_scroll.GetViewStart()
            pos_x,pos_y=(0,0)
     
            sizer = wx.BoxSizer()#Sizer pour le win_scroll
     
            self.win_scroll=wx.ScrolledWindow(self)
     
            sizer.Add(self.win_scroll, 1, wx.EXPAND|wx.ALL, 2)
            self.SetSizer(sizer)
     
            self.img = wx.Image( self.graphicFilename, wx.BITMAP_TYPE_ANY )
            self.img_bmp =self.img.ConvertToBitmap()
            #self.img_bmp=wx.EmptyBitmap(200, 500)
     
            self.win_scroll.SetVirtualSize(wx.Size(self.img_bmp.GetWidth(),self.img_bmp.GetHeight()))
     
            #self.Pnl = wx.Panel(self,size=(200,200))
     
            self.static_bmp = wx.StaticBitmap(self.win_scroll, 1 ,self.img_bmp)
            self.win_scroll.SetScrollRate(1,1)#a verifier
     
            self.win_scroll.Scroll(0,0)
            self.win_scroll.Refresh()
     
    #Teste si l'image est chargée#############
            testimg=self.img_bmp.IsOk()
     
            if(testimg ==True):
                wx.EVT_LEFT_DOWN(self.static_bmp,   self.OnLeftDown)
            else:
                print "image non chargée"
     ##########################################
     
        def OnLeftDown(self, event):
                pt_pos = event.GetPosition()  # position tuple
                print ('position mouse dans l image : = ' + str(pt_pos))
                self.SetTitle(str(pt_pos))
     
     
    class MonApp(wx.App):
        def OnInit(self):
            fen = Affichage("Exemple 1")
            fen.Show(True)
            self.SetTopWindow(fen)
            return True
     
    app = MonApp()
    app.MainLoop()

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/11/2005, 16h24
  2. comment afficher cursor: hand sous FF pour une image?
    Par Death83 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/09/2005, 08h48
  3. [D2005][CGI] Nom de fichier pour une image
    Par Argonaute dans le forum Web & réseau
    Réponses: 1
    Dernier message: 30/08/2005, 12h56
  4. filtre séparable pour une image
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 31/05/2005, 16h45
  5. Définir un angle de rotation pour une image
    Par mateo.14 dans le forum C++
    Réponses: 5
    Dernier message: 25/03/2005, 14h43

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