带有禁用工具的wxPython ToolBar无法按预期呈现

时间:2019-06-29 18:27:57

标签: python wxpython

我有一个基于wxPython的应用程序,但其中一个工具栏遇到了麻烦。它最初是针对wxPython 2.8.10 / Python 2.6编写的,但当前与wxPython 4.0.4 / Python 2.7.15一起运行。

工具栏包含(16,16)和(32,32)位图。启用所有功能后,所有位图均可正常显示。但是,任何禁用的位图看起来都试图在其空间的左上角(16,15)渲染。我尝试切换为调用(16,16)位图,并尝试将bmpDisabled设置为各种值,并更改工具栏上的SetToolBitmapSize,但似乎没有任何方法可以解决该问题。

启用时工具栏呈现的示例

Example of the toolbar rendering when enabled

禁用第一个(16,16)和第三个(32,32)工具栏的示例。第二(16,16)仍然启用。

Example of the toolbar with the 1st (16,16) and 3rd (32,32) disabled

代码很简单:

   self._tb = self.CreateToolBar()
   self._tb.SetToolBitmapSize((32,32))

   image =   getTransparentwxBitmap("icons/foo.bmp")
   item =   self._tb.AddCheckTool(self.TB_FOO_ID, "", image, wx.NullBitmap, "Foo Panel", "Show/Hide the foo panel")
    self._tb.Bind(wx.EVT_TOOL,self.onToolClick,item)
    self._tb.EnableTool(self.TB_FOO_ID,False)

   image =   getTransparentwxBitmap("icons/bar.bmp")
   item =   self._tb.AddCheckTool(self.TB_BAR_ID, "", image, wx.NullBitmap, "Bar Panel", "Show/Hide the bar panel")
   self._tb.Bind(wx.EVT_TOOL,self.onToolClick,item)
   self._tb.EnableTool(self.TB_BAR_ID,False)

   imgPath = "images/baz.png"
   image = wx.Bitmap(imgPath)
   item = self._tb.AddTool(self.TB_BAZ_ID, "", image, shortHelp="BAZ Tool")
   self._tb.EnableTool(self.TB_BAZ_ID, False)
   .
   .
   .
   other tools
   .
   .
   .

   self._tb.Realize()

有什么想法吗?

0 个答案:

没有答案