wxpython切换工具栏按钮

2024-04-26 20:38:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有wxpython工具栏与一些图标,例如连接,播放,保存等。我想切换连接图标。在

当我连接,然后连接位图应替换为断开连接,反之亦然。wxpython中是否有现成的方法可以在工具栏中实现这种行为。我使用的另一种方法是同时显示connect和disconnect以及基于action的enable/disable,但是我有很多图标。。所以通过切换我想节省一些空间


Tags: 方法enableconnectwxpython空间action图标工具栏
1条回答
网友
1楼 · 发布于 2024-04-26 20:38:11

和普通人一起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中,但是它的作用方式不同。当你按下按钮时,你只能看到另一个图像,但是当按钮被释放时,它又会恢复。在

相关问题 更多 >