Edit: (kleine Änderung -> 2. Problem) Ich habe einen BitmapButton & ein TextCtrl erstellt. Das Bild in diesem Button soll sich ändern, wenn ein bestimmter Text in TextCtrl eingegeben wird. Das funktioniert:
def create(self,event):
self.textinput = wx.TextCtrl(self.panel, pos=(100,20))
self.picture = wx.Image("pics\\default.bmp", wx.BITMAP_TYPE_BMP).ConvertToBitmap()
self.picturebutton = wx.BitmapButton(self.panel,-1,self.picture,pos=(100,50))
self.textinput.Bind(wx.EVT_CHAR, self.changepic)
def changepic(self,event):
if self.textinput.GetValue = 'test':
self.picturebutton.Destroy()
self.picture = wx.Image("pics\\new.bmp", wx.BITMAP_TYPE_BMP).ConvertToBitmap()
self.picturebutton = wx.BitmapButton(self.panel,-1,self.picture,pos=(100,50))
event.Skip()
1.) Ich hoffe, dass es eine andere Möglichkeit gibt, anstatt diese Taste zu zerstören und neu zu bauen. Ich habe versucht
self.picturebutton.Refresh()
y
self.picturebutton.Update()
anstelle von
self.picturebutton.Destroy()
self.picturebutton=wx.BitmapButton(self.panel,-1,self.picture,pos=(100,50))
aber nichts geschah. Was kann ich tun?
2.) Es sieht so aus, als ob "changepic" genannt wird anfangs y t mein TextCtrl empfängt das Zeichen. Denn wenn ich "test" eingebe, passiert nichts, bis ich eine andere Taste drücke. Das Bild ändert sich also, wenn ich z.B. "testa" eingebe. Aber es soll sich ändern, wenn "test" im TextCtrl steht. Wie kann ich das lösen? Gibt es ein TextCtrl-Ereignis, das erste setzt das Zeichen in das TextCtrl und t eine Funktion aufrufen?