2024-04-26 20:38:11 发布
网友
我有wxpython工具栏与一些图标,例如连接,播放,保存等。我想切换连接图标。在
当我连接,然后连接位图应替换为断开连接,反之亦然。wxpython中是否有现成的方法可以在工具栏中实现这种行为。我使用的另一种方法是同时显示connect和disconnect以及基于action的enable/disable,但是我有很多图标。。所以通过切换我想节省一些空间
和普通人一起wx.切换按钮,您需要更改切换事件处理程序中的图标:
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()
如果使用的是通用版本的ToggleButton,则可以使用SetBitmapSelected()方法。您可以在中找到通用版本wx.lib.按钮. 您可以在wxPython演示包中看到这个示例。在
奇怪的是,从wxpython2.9开始,SetBitmapSelected()似乎出现在常规的ToggleButton中,但是它的作用方式不同。当你按下按钮时,你只能看到另一个图像,但是当按钮被释放时,它又会恢复。在
和普通人一起wx.切换按钮,您需要更改切换事件处理程序中的图标:
如果使用的是通用版本的ToggleButton,则可以使用SetBitmapSelected()方法。您可以在中找到通用版本wx.lib.按钮. 您可以在wxPython演示包中看到这个示例。在
奇怪的是,从wxpython2.9开始,SetBitmapSelected()似乎出现在常规的ToggleButton中,但是它的作用方式不同。当你按下按钮时,你只能看到另一个图像,但是当按钮被释放时,它又会恢复。在
相关问题 更多 >
编程相关推荐