這是一個快速和骯髒的腳本,將告訴你如何獲得按鈕ID和標籤。我使用正常的wx.Button對象,因爲沒有很好的方法在堆棧中包含用於位圖按鈕的圖像:
import random
import wx
########################################################################
class MyPanel(wx.Panel):
""""""
#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent=parent)
mainSizer = wx.BoxSizer(wx.VERTICAL)
i = random.choice(range(5, 10))
for index, item in enumerate(range(i)):
num = index + 1
btn = wx.Button(self, label="Button %s" % num)
btn.Bind(wx.EVT_BUTTON, self.onClick)
mainSizer.Add(btn, 0, wx.ALL|wx.CENTER, 5)
self.SetSizer(mainSizer)
#----------------------------------------------------------------------
def onClick(self, event):
""""""
btn = event.GetEventObject()
print "%s id => %s" % (btn.GetLabel(), btn.GetId())
########################################################################
class MainFrame(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, title="Random Buttons", size=(1024, 768))
panel = MyPanel(self)
self.Show()
if __name__ == "__main__":
app = wx.App(False)
frame = MainFrame()
app.MainLoop()
您沒有設置任何id到按鈕。你沒有定義btid,但self.btid – joaquin 2013-03-10 07:05:32
我迭代地創建多個按鈕,btid的值在每次迭代後都增加1 – 2013-03-10 11:48:00
不,在您的代碼中不會增加「btid」。 'self.btid'是。 – joaquin 2013-03-10 20:15:03