Récupérer une image d'une RichTextCtrl

Récupérer une image d'une RichTextCtrl - Python - Programmation

Marsh Posté le 20-05-2008 à 14:10:12    

Bonjour à tous,       :bic:   et d'avance merci pour votre baguette magique...
 
Je découvre wxPython depuis et j'avoue avoir beaucoup de mal à l'utiliser.
Je voudrais mettre une image dans une RichTextCtrl
et surtout pouvoir récuper cette image (pour pouvoir la retravailler par exemple)soit parce que l'utilisateur l'a sélectionnée soit parce qu'il a cliqué dessus mais je ne trouve aucune solution.
Voici donc une ébauche et d'avance merci à qui pourra m'aider...
 

Code :
  1. # !/usr/bin/python
  2. # -*- coding:Latin-1 -*-
  3. import wx
  4. import wx.richtext as rt
  5.    
  6. class Fentre_prin(wx.Frame):
  7.     def __init__(self, parent, title):
  8.         wx.Frame.__init__(self, parent, -1, title,size=(800,600))
  9. ma_scroll_window = wx.ScrolledWindow(self)
  10. ma_scroll_window.SetBackgroundColour(wx.WHITE)
  11. ma_scroll_window.SetScrollbars(20, 20, 55, 40)
  12. # Création des différents widgets :
  13. ### bouton :
  14.         b1 = wx.Button(ma_scroll_window, -1, u"Quitter" )
  15.         self.Bind(wx.EVT_BUTTON, self.quitter, b1)
  16. ### richtext :
  17. self.ma_RichText= rt.RichTextCtrl(ma_scroll_window, -1, "",size=(700,400))
  18. self.ma_RichText.WriteText('Bonjour ')
  19. image1=wx.Image("chien.jpg" )
  20. self.ma_RichText.WriteImage(image1)
  21. wx.EVT_LEFT_DOWN(self.ma_RichText,self.clik_sur_image)
  22. self.ma_RichText.Layout()
  23. # Création du sizer et positionnement des wigets :
  24. sizer = wx.BoxSizer(wx.VERTICAL)
  25.         sizer.Add(b1, 0, wx.ALL, 5)
  26. sizer.Add(self.ma_RichText, 0, wx.ALL, 5)
  27.         # Le sizer est lié au conteneur :
  28.         ma_scroll_window.SetSizer(sizer)
  29.         ma_scroll_window.Layout()
  30.        
  31.     def quitter(self, evt):
  32.         self.Close()
  33.     def clik_sur_image(self, evt):
  34. self.ma_RichText.WriteText("Tu as sélectionné l'image " )
  35.  
  36. class MyApp(wx.App):
  37.     def OnInit(self):
  38.         frame = Fentre_prin(None, u"Début" )
  39.         self.SetTopWindow(frame)
  40.         frame.Show(True)
  41.         return True
  42. try:
  43. app = MyApp()
  44. except:
  45. app = MyApp(redirect=True)
  46. app.MainLoop()


 
Remarque :
Le Bind (sur ligne rouge) n'est pas correct puisqu'il s'apllique sur la RichTextCtrl complète et non pas uniquement sur l'image mais là non plus je ne sais comment faire...

Reply

Marsh Posté le 20-05-2008 à 14:10:12   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed