編集: (少し変更 -> 2 番目の問題) BitmapButton と TextCtrl を作成しました。このボタンの画像は、TextCtrl に特定のテキストが入力されると変化します。これは機能します:
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.) このボタンを破棄して再構築する代わりに、別の方法があることを願っています。私は試した
self.picturebutton.Refresh()
と
self.picturebutton.Update()
それ以外の
self.picturebutton.Destroy()
self.picturebutton=wx.BitmapButton(self.panel,-1,self.picture,pos=(100,50))
しかし、何も起こりませんでした。私に何ができる?
2.) 最初に「changepic」が呼び出され、次にTextCtrl が char を受け取るようです。「test」と入力すると、別のキーを押すまで何も起こらないためです。なので、例えば「testa」と入力すると絵が変わります。ただし、「test」が TextCtrl にある場合は変更されます。どうすればこれを解決できますか? 最初に文字を TextCtrl に入れてから関数を呼び出すTextCtrl-Event はありますか?