我正在使用wxpython 2.8,這可能會使事情稍微困難一些。工具欄工具 - 位圖切換
我想在工具欄中創建一個按鈕,如果它切換,它只是簡單地改變它的位圖。無論何時切換改變,位圖都會變爲適當的圖標。
看到,因爲這種能力似乎沒有建成,我不希望我的看法過於緊密混合我的控制,我趕緊嘗試這樣做:
class ToggleToolBarBase(wx.ToolBarToolBase):
"""A ToolBar Button with bitmaps which is meant to be toggled."""
def __init__(self, tbar=None, toolid=wx.ID_SEPARATOR, label="",
bmpOff=wx.NullBitmap, bmpOn=wx.NullBitmap,
kind=wx.ITEM_NORMAL, clientData=None,
shortHelpString="", longHelpString=""):
# super(ToggleToolBarBase, self).__init__(self, tbar, toolid, label,
# bmpOff, bmpOn,
# kind, clientData,
# shortHelpString,
# longHelpString)
# Which constructor can I use?
super(ToggleToolBarBase, self).__init__()
self.tbar = tbar
self.bmpOff = bmpOff
self.bmpOn = bmpOn
self.toggle = False
def Toggle(self):
super(ToggleToolBarBase, self).Toggle()
self.toggle = not self.toggle
@property
def toggle(self):
return self._toggle
@toggle.setter
def toggle(self, value):
self._toggle = value
if value is False:
self.SetNormalBitmap(self.bmpOff)
elif value is True:
self.SetNormalBitmap(self.bmpOn)
self.tbar.Realize()
self.tbar.Refresh()
所有toolbar.AddLabelTool()函數返回ToolBarToolBase
所以我想我可以簡單地擴展它,但沒有構造函數的工作,它看起來像它只是一個C++類的代理。
我嘗試了一些其他方法,但似乎沒有任何工作正常。當然必須有一個簡單的解決方案。我想這是經常實施的。