forked from danheeks/PyCAD
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPictureFrame.py
36 lines (30 loc) · 1.15 KB
/
PictureFrame.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import wx
class PictureFrame(wx.ScrolledWindow):
def __init__(self, parent, bitmap):
wx.ScrolledWindow.__init__(self, parent)
self.bitmap = bitmap
self.SetScrollRate(10,10)
w = self.bitmap.GetWidth()
h = self.bitmap.GetHeight()
self.SetVirtualSize(w,h)
self.Bind(wx.EVT_PAINT, self.OnPaint)
def OnPaint(self, event):
dc = wx.PaintDC(self)
dc.DrawBitmap(self.bitmap, 0,0, False)
class PictureWindow(wx.Window):
def __init__(self, parent, size):
wx.Window.__init__(self, parent, wx.ID_ANY, wx.DefaultPosition, size)
self.bitmap = None
self.bitmaps = {}
self.Bind(wx.EVT_PAINT, self.OnPaint)
def OnPaint(self, event):
dc = wx.PaintDC(self)
if self.bitmap:
dc.DrawBitmap(self.bitmap, 0,0, False)
def SetBitmap(self, bitmap):
self.bitmap = bitmap
self.Refresh()
def SetPicture(self, filepath):
if not filepath in self.bitmaps:
self.bitmaps[filepath] = wx.Bitmap(wx.Image(filepath, wx.BITMAP_TYPE_PNG))
self.SetBitmap(self.bitmaps[filepath])