1

Python について少し質問があります。を使用して GUI を作成しましたwxformbuilder。この GUI には、複数のビットマップ ボタンがあります。それらはすべて同じ関数にバインドされています。

私のメインプログラムでは、名前に応じてそれらを分離したいと考えています。明らかに、私のGetEventObject()はここでは機能しません。

自動化された GUI コードを手動で編集することもできますが、私はそうしたくありません。btn_forwardleftGUIファイルから名前を取得するために使用できる関数はありますか?

自動生成された 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
4

1 に答える 1

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
于 2015-09-05T09:09:04.850 に答える