Bonjour à tous et à toutes,

Voila j’ai crée une classe dérivant de TextCtrl. Je voudrais modifier la fonction Clear() pour par exemple afficher un texte. Je définis donc la méthode clear mais je ne sais pas comment faire pour faire appel à la vrai méthode clear du TextCtrl, car lorsque je fais un self.Clear() cela fait appel a elle même donc boucle infinie et non pas a la méthode Clear du TextCtrl

Voici un petit bout de code

Le but de ce code est d’effacer le texte lors de l event mouse wheel
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
import wx
import sys, traceback
 
class TextScroll(wx.TextCtrl):
	def __init__(self, parent, id = -1, value="", style=wx.TE_MULTILINE|wx.TE_RICH2|wx.HSCROLL):
 
		wx.TextCtrl.__init__(self, parent, id=id, value=value, style = style)
 
		# mouse event
		self.Bind(wx.EVT_MOUSEWHEEL	, self.__OnMouseWheel)
 
	def __OnMouseWheel(self, evt):
		self.Clear()
 
	def Clear(self):
		self.Clear()
 
class SplitterExampleFrame(wx.Frame):
	def __init__(self, parent, title):
		wx.Frame.__init__(self, parent, title=title)
 
		panel = wx.Panel(self)
		panel.SetBackgroundColour("red")
 
		Box = wx.BoxSizer(wx.VERTICAL)
		self.txt = wx.StaticText(panel, label = "test")
		Box.Add(self.txt, 0, wx.TOP|wx.CENTER, 5)
 
		self.text = TextScroll(panel)
		Box.Add(self.text, 1, wx.EXPAND)
 
		self.txt2 = wx.StaticText(panel, label = "test")
		Box.Add(self.txt2, 0, wx.TOP|wx.CENTER, 5)
		panel.SetSizer(Box)
 
 
		self.SetSize((600,500))
		self.Show()
 
if __name__ == '__main__':
	try:
		app = wx.PySimpleApp(redirect=True)
		frm = SplitterExampleFrame(None,"test")
		app.SetTopWindow(frm)
		app.MainLoop()
	except:
		traceback.print_exc (file=open('error_text.txt', 'w'))
Merci d’avance
Cordialement
Jean-Michel