WxPython更改按钮面板上的按钮(位图)

时间:2017-12-30 19:21:39

标签: wxpython

使用wx.lib.agw.buttonpanel创建了我的第一个按钮面板。
它有很多按钮,我需要在特定事件上更改特定按钮的图像,我该怎么做? 目前我重新创建了整个面板,寻找更好的方法。

我在这里创建它们:

for count, png in enumerate(self.pngs):
    shortHelp = short_help[count]
    kind = wx.ITEM_NORMAL
    longHelp = long_help[count]
    btn = bp.ButtonInfo(self.titleBar, wx.NewId(),
                                png[0], kind=kind,
                                shortHelp=shortHelp)

     self.titleBar.AddButton(btn)
     self.Bind(wx.EVT_BUTTON, OnButtonFunc[count], id=btn.GetId())
     self.titleBar.AddSeparator()

1 个答案:

答案 0 :(得分:1)

使用正常wx.BitmapButton,您可以使用event更改图片。我不知道你是否会使用wx.lib.agw.buttonpanel获得相同的里程数。

您需要将图像存储为与按钮的Id交换,然后使用该事件交换图像。

def MyButtonFunction(self, event):
    ButtonId = event.GetId()
    #Map the Id to the image here#
    event.GetEventObject().SetBitmap(wx.Bitmap('/path/to/button/image/swap.png'))