I am trying to put an image in a Scrolled Window. I have a panel in
the parent frame and I put the Scrolled Window on this panel, as well
as some sizers with widgets in them. I'm posting some of the code
below. Unfortunately, my employer won't let me post the whole code or
provide an executable sample, so I've included a screenshot of the
problem. You can see in the screenshot that part of the right and
bottom of the image are cut off.
Screenshot: http://www.flickr.com/photos/62487889@N07/5686982025/in/photostream/
self.browserPanel = wx.Panel(self)
self.fgs=wx.FlexGridSizer(cols=1, hgap=1, vgap=1)
self.scrollPanel = wx.ScrolledWindow(self.browserPanel, -1)
self.scrollSizer = wx.FlexGridSizer(cols = 1, hgap = 1, vgap = 1)
self.scrollSizer.Add(wx.EmptyBitmap(500,500).GetSize())
self.scrollPanel.SetSizerAndFit(self.scrollSizer)
self.fgs.Add(self.scrollPanel)
self.Bind(wx.EVT_PAINT, self.OnPaint)
self.loadCurrentImage()
self.s = wx.BoxSizer(wx.VERTICAL)
self.sizer = wx.BoxSizer(wx.HORIZONTAL)
···
*****************
widgets are created
*****************
self.left = wx.BoxSizer(wx.VERTICAL)
self.left.Add(self.browseBySizer, 1, wx.EXPAND)
self.left.Add(self.overlaySizer, 1, wx.EXPAND)
self.right = wx.BoxSizer(wx.VERTICAL)
self.right.Add(self.imageControlSizer, 1, wx.EXPAND)
self.right.Add(self.autoPlaySizer, 1, wx.EXPAND)
self.sizer.Add(self.left, 1, wx.EXPAND)
self.sizer.AddSpacer(self.SPACERSIZE)
self.sizer.Add(self.right, 1, wx.EXPAND)
self.s.AddSpacer(self.SPACERSIZE)
self.s.Add(self.sizer, 1, wx.EXPAND)
self.fgs.Add(self.s, 1, wx.EXPAND)
self.browserPanel.SetSizerAndFit(self.fgs)
self.Update()
*********************************************************************
This is the function where I replace the empty bitmap in the Scrolled
Window with an image
*********************************************************************
def loadCurrentImage(self):
'''
Loads the current image based off Workspace.currentImageIndex.
This function is called after every image change.
'''
try:
self.currentImage = Workspace.data.getImageDirectory() +
os.sep + Workspace.data.getImageName(Workspace.currentImageIndex)
except:
Workspace.currentImageIndex = 1
self.img = simple_image.Image()
if enhanceTool.norm.GetValue()==True:
self.img.normalize('RGB')
if enhanceTool.norm.GetValue()==False:
self.img.normalize(None)
if enhanceTool.eq.GetValue()==True:
self.img.equalize('RGB')
if enhanceTool.eq.GetValue()==False:
self.img.equalize(None)
if enhanceTool.sharp.GetValue()==True:
self.img.enhanceSharpness(2.0)
if enhanceTool.sharp.GetValue()==False:
self.img.enhanceSharpness(1.0)
if enhanceTool.invert.GetValue()==True:
self.img.invert(True)
if enhanceTool.invert.GetValue()==False:
self.img.invert(False)
self.img.load(self.currentImage)
imageBrowser.iWidth = self.img.wx().GetWidth()
imageBrowser.iHeight = self.img.wx().GetHeight()
self.img =
self.img.wx().Scale(imageBrowser.iWidth*Workspace.zoomScale,
imageBrowser.iHeight*Workspace.zoomScale).ConvertToBitmap()
self.scrollSizer.Remove(0)
self.scrollSizer.Prepend(self.img.GetSize())
self.Refresh()
self.Fit()