У меня есть приложение на основе 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 на панели инструментов, но, похоже, ничто не исправляет поведение.
Пример рендеринга панели инструментов при включении
Пример панели инструментов с отключенной 1-й (16,16) и 3-й (32,32). 2-й (16,16) все еще включен.
Код довольно прост:
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()
Есть мысли?