2015-07-14 3 views
1

У меня есть небольшой вопрос на python. Я создал графический интерфейс, используя wxformbuilder. В этом графическом интерфейсе есть несколько кнопок растровых изображений. Все они привязаны к одной и той же функции.Определить wx.BitmapButton, созданный wxformbuilder

В моей основной программе я хочу разделить их в зависимости от их имени. Очевидно, что мой GetEventObject() здесь не работает.

Я мог бы вручную отредактировать автоматический графический интерфейс, но я не хочу этого делать. Есть ли какая-либо функция, которую я мог бы использовать для извлечения, скажем, имя btn_forwardleft из файла GUI?

В моем автоматическом генерируемого gui.py

self.btn_forwardleft = wx.BitmapButton(self, wx.ID_ANY, wx.Bitmap(u"button_upleft.png", wx.BITMAP_TYPE_ANY), wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW) 
    self.btn_forwardleft.SetBitmapSelected(wx.Bitmap(u"button_upleft_p.png", wx.BITMAP_TYPE_ANY)) 

    self.btn_forwardright = wx.BitmapButton(self, wx.ID_ANY, wx.Bitmap(u"button_upright.png", wx.BITMAP_TYPE_ANY), wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW) 
    self.btn_forwardright.SetBitmapSelected(wx.Bitmap(u"button_upright_p.png", wx.BITMAP_TYPE_ANY)) 

    self.btn_forwardleft.Bind(wx.EVT_BUTTON, self.OnArrowButtonPress) 
    self.btn_forwardright.Bind(wx.EVT_BUTTON, self.OnArrowButtonPress) 

и в моей программе main.py

def OnArrowButtonPress(self,event): 
    keyname = event.GetEventObject() 
    # print keyname 
    timeoutflag = False 
    if(keyname=='btn_forwardleft'): 
     command = 10 
    elif(keyname=='btn_forwardright'): 
     command = 20 

ответ

0

GetEventObject() возвращает указатель, который можно сравнить с self.anything как что

def OnArrowButtonPress(self,event): 
    keyname = event.GetEventObject() 
    # print keyname 
    timeoutflag = False 
    if(keyname==self.btn_forwardleft): 
     command = 10 
    elif(keyname==self.btn_forwardright): 
     command = 20