使用wxPython显示图像时的垂直偏移

时间:2016-02-23 12:05:31

标签: python wxpython wxwidgets sizer

以下是我们如何在wxPython框架中显示图像。

enter image description here

import wx

class Viewer(wx.App):
    def __init__(self, redirect=False, filename=None):
        wx.App.__init__(self, redirect, filename)
        self.frame = wx.Frame(None, title='Viewer')
        self.panel = wx.Panel(self.frame)
        self.imageCtrl = wx.StaticBitmap(self.panel, wx.ID_ANY, wx.BitmapFromImage(wx.EmptyImage(800,600)))
        self.mainSizer = wx.BoxSizer(wx.VERTICAL)
        self.mainSizer.Add(self.imageCtrl, 0, wx.ALL, 5)
        self.onView('0.png')
        self.panel.Layout()        
        self.frame.Show()

    def onView(self, filename):
        img = wx.Image(filename, wx.BITMAP_TYPE_ANY)
        self.imageCtrl.SetBitmap(wx.BitmapFromImage(img))
        self.panel.Refresh()
        self.mainSizer.Fit(self.frame)

Viewer().MainLoop()

如果测试图像具有大尺寸,例如912 x 3616(这是我使用的0.png),我想设置一个垂直偏移,即框架的上角不应该是(0,0)图像但是(0,500)即500px垂直偏移。

如何使用wxPython设置图像的垂直偏移量?

1 个答案:

答案 0 :(得分:0)

如果你真的想要截断图像,最直接的做法就是这样做,即使用wxImage::GetSubImage()创建一个新图像,区域从(0,500)开始。

更常见的情况是,您可以使用滚动窗口然后最初可以垂直滚动500,但仍允许用户滚动回原点。

也可以使用没有滚动条的滚动窗口,但这看起来毫无意义。