次のコード(thisの影響を受けています)では、単一のイベントハンドラbuttonClick
を使用してウィンドウのタイトルを変更します。現在、イベントのIDがボタンのIDに対応するかどうかを評価する必要があります。 2つではなく50のボタンを追加することに決めたら、この方法は煩雑になる可能性があります。これを行うより良い方法はありますか?イベントを呼び出したボタンの名前を取得する最も良い方法は?
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, 'wxBitmapButton',
pos=(300, 150), size=(300, 350))
self.panel1 = wx.Panel(self, -1)
self.button1 = wx.Button(self.panel1, id=-1,
pos=(10, 20), size = (20,20))
self.button1.Bind(wx.EVT_BUTTON, self.buttonClick)
self.button2 = wx.Button(self.panel1, id=-1,
pos=(40, 20), size = (20,20))
self.button2.Bind(wx.EVT_BUTTON, self.buttonClick)
self.Show(True)
def buttonClick(self,event):
if event.Id == self.button1.Id:
self.SetTitle("Button 1 clicked")
elif event.Id == self.button2.Id:
self.SetTitle("Button 2 clicked")
application = wx.PySimpleApp()
window = MyFrame()
application.MainLoop()
をStackOverflowのために私の最初の投稿です。 – FogleBird