일반 wx.ToggleButton을 사용하면 ' 토글 이벤트 핸들러의 아이콘을 변경하려는 것이다 :
import wx
########################################################################
class MyPanel(wx.Panel):
""""""
#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent)
self.save_ico = wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR, (16,16))
self.print_ico = wx.ArtProvider.GetBitmap(wx.ART_PRINT, wx.ART_TOOLBAR, (16,16))
self.toggleBtn = wx.ToggleButton(self)
self.toggleBtn.SetBitmap(self.save_ico)
self.toggleBtn.Bind(wx.EVT_TOGGLEBUTTON, self.onToggle)
#----------------------------------------------------------------------
def onToggle(self, event):
""""""
btn = event.GetEventObject()
if btn.GetValue():
self.toggleBtn.SetBitmap(self.print_ico)
else:
self.toggleBtn.SetBitmap(self.save_ico)
########################################################################
class MyFrame(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, title="Toggle buttons")
panel = MyPanel(self)
self.Show()
#----------------------------------------------------------------------
if __name__ == "__main__":
app = wx.App(False)
frame = MyFrame()
app.MainLoop()
당신이 당신이 SetBitmapSelected() 메소드를 사용할 수 ToggleButton을의 일반 버전을 사용하는 경우. wx.lib.buttons에서 일반 버전을 찾을 수 있습니다. 이 예제는 wxPython 데모 패키지에서 볼 수 있습니다.
이상하게도 SetBitmapSelected()는 wxPython 2.9에서 시작하는 일반 ToggleButton에 대해 표시되지만 동일한 방식으로 작동하지 않습니다. 단추를 누를 때만 대체 이미지를 볼 수 있지만 단추를 놓으면 되돌아갑니다.