Используйте self.panel.Layout()
, чтобы заставить его упорядочить предметы
def OnOver(self, event):
self.image.SetBitmap(self.png_bw)
self.panel.Layout()
def OnLeave(self, event):
self.image.SetBitmap(self.png)
self.panel.Layout()
В Linux мне пришлось привязать события к self.panel
вместо self.image
self.panel.Bind(wx.EVT_ENTER_WINDOW, self.OnOver)
self.panel.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
Если self.image.Bind()
работает в вашей системе, не меняйте его.
Может быть, это только проблема в Linux.
Используя это, я могу поместить предмет в центр окна
hbox.Add(self.image, 1, wx.EXPAND|wx.ALL)
Используя wx.Image()
, вы можете загрузить изображение, и у него есть методы для преобразования в оттенки серого.
img = wx.Image("TestButton.png")
img_bw = img.ConvertToGreyscale(0.3, 0.3, 0.3)
self.png = wx.Bitmap(img)
self.png_bw = wx.Bitmap(img_bw)
Док: шх. Изображение