本文整理汇总了Python中wx.MemoryDC方法的典型用法代码示例。如果您正苦于以下问题:Python wx.MemoryDC方法的具体用法?Python wx.MemoryDC怎么用?Python wx.MemoryDC使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wx
的用法示例。
在下文中一共展示了wx.MemoryDC方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _makeBitmap
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def _makeBitmap(self):
width = height = 22
bg = self.GetColour()
if self.HasFlag(CLRP_SHOW_LABEL):
w, h = self.GetTextExtent(bg.GetAsString(wx.C2S_HTML_SYNTAX))
width += w
bmp = wx.Bitmap(width, height)
dc = wx.MemoryDC(bmp)
dc.SetBackground(wx.Brush(self.colour))
dc.Clear()
if self.HasFlag(CLRP_SHOW_LABEL):
from wx.lib.colourutils import BestLabelColour
fg = BestLabelColour(bg)
dc.SetTextForeground(fg)
dc.DrawText(bg.GetAsString(wx.C2S_HTML_SYNTAX),
(width - w)/2, (height - h)/2)
return bmp
#--------------------------------------------------
示例2: __init__
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def __init__(self, bitmap, renderer):
GraphicsContextBase.__init__(self)
#assert self.Ok(), "wxMemoryDC not OK to use"
DEBUG_MSG("__init__()", 1, self)
dc, gfx_ctx = self._cache.get(bitmap, (None, None))
if dc is None:
dc = wx.MemoryDC()
dc.SelectObject(bitmap)
gfx_ctx = wx.GraphicsContext.Create(dc)
gfx_ctx._lastcliprect = None
self._cache[bitmap] = dc, gfx_ctx
self.bitmap = bitmap
self.dc = dc
self.gfx_ctx = gfx_ctx
self._pen = wx.Pen('BLACK', 1, wx.SOLID)
gfx_ctx.SetPen(self._pen)
self._style = wx.SOLID
self.renderer = renderer
示例3: __init__
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def __init__(self, bitmap, renderer):
GraphicsContextBase.__init__(self)
# assert self.Ok(), "wxMemoryDC not OK to use"
DEBUG_MSG("__init__()", 1, self)
DEBUG_MSG("__init__() 2: %s" % bitmap, 1, self)
dc, gfx_ctx = self._cache.get(bitmap, (None, None))
if dc is None:
dc = wx.MemoryDC()
dc.SelectObject(bitmap)
gfx_ctx = wx.GraphicsContext.Create(dc)
gfx_ctx._lastcliprect = None
self._cache[bitmap] = dc, gfx_ctx
self.bitmap = bitmap
self.dc = dc
self.gfx_ctx = gfx_ctx
self._pen = wx.Pen('BLACK', 1, wx.SOLID)
gfx_ctx.SetPen(self._pen)
self.renderer = renderer
示例4: __init__
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def __init__(self, bitmap, renderer):
GraphicsContextBase.__init__(self)
# assert self.Ok(), "wxMemoryDC not OK to use"
DEBUG_MSG("__init__()", 1, self)
DEBUG_MSG("__init__() 2: %s" % bitmap, 1, self)
dc, gfx_ctx = self._cache.get(bitmap, (None, None))
if dc is None:
dc = wx.MemoryDC()
dc.SelectObject(bitmap)
gfx_ctx = wx.GraphicsContext.Create(dc)
gfx_ctx._lastcliprect = None
self._cache[bitmap] = dc, gfx_ctx
self.bitmap = bitmap
self.dc = dc
self.gfx_ctx = gfx_ctx
self._pen = wx.Pen('BLACK', 1, wx.SOLID)
gfx_ctx.SetPen(self._pen)
self._style = wx.SOLID
self.renderer = renderer
示例5: draw_monitor_numbers
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def draw_monitor_numbers(self, use_ppi_px):
font = wx.Font(24, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL)
font_clr = wx.Colour(60, 60, 60, alpha=wx.ALPHA_OPAQUE)
for st_bmp in self.preview_img_list:
bmp = st_bmp.GetBitmap()
dc = wx.MemoryDC(bmp)
text = str(self.preview_img_list.index(st_bmp))
dc.SetTextForeground(font_clr)
dc.SetFont(font)
dc.DrawText(text, 5, 5)
del dc
st_bmp.SetBitmap(bmp)
if use_ppi_px:
self.draw_monitor_sizes()
示例6: draw_monitor_sizes
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def draw_monitor_sizes(self):
font = wx.Font(24, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_LIGHT)
font_clr = wx.Colour(60, 60, 60, alpha=wx.ALPHA_OPAQUE)
for st_bmp, img_sz, dsp in zip(self.preview_img_list,
self.img_rel_sizes,
self.display_sys.disp_list):
bmp = st_bmp.GetBitmap()
dc = wx.MemoryDC(bmp)
text = str(dsp.diagonal_size()[1]) + '"'
dc.SetTextForeground(font_clr)
dc.SetFont(font)
# bmp_w, bmp_h = dc.GetSize()
bmp_w, bmp_h = img_sz
text_w, text_h = dc.GetTextExtent(text)
pos_w = bmp_w - text_w - 5
pos_h = 5
dc.DrawText(text, pos_w, pos_h)
del dc
st_bmp.SetBitmap(bmp)
示例7: draw_canvas
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def draw_canvas(self, dc, draw=True):
if self.st_bmp_canvas:
pos = self.st_bmp_canvas.GetPosition()
bmp = self.st_bmp_canvas.GetBitmap()
bmp_sz = bmp.GetSize()
if not draw:
bmp = wx.Bitmap.FromRGBA(bmp_sz[0], bmp_sz[1], red=30, green=30, blue=30, alpha=255)
op = wx.COPY
if bmp.IsOk():
memDC = wx.MemoryDC()
# memDC.SelectObject(wx.NullBitmap)
memDC.SelectObject(bmp)
dc.Blit(pos[0], pos[1],
bmp_sz[0], bmp_sz[1],
memDC, 0, 0, op, True)
return True
else:
return False
示例8: add_image
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def add_image(self, image):
b = wx.BitmapFromImage(image)
if not b.Ok():
raise Exception("The image (%s) is not valid." % image)
if (sys.platform == "darwin" and
(b.GetWidth(), b.GetHeight()) == (self.icon_size, self.icon_size)):
return self.il.Add(b)
b2 = wx.EmptyBitmap(self.icon_size, self.icon_size)
dc = wx.MemoryDC()
dc.SelectObject(b2)
dc.SetBackgroundMode(wx.TRANSPARENT)
dc.Clear()
x = (b2.GetWidth() - b.GetWidth()) / 2
y = (b2.GetHeight() - b.GetHeight()) / 2
dc.DrawBitmap(b, x, y, True)
dc.SelectObject(wx.NullBitmap)
b2.SetMask(wx.Mask(b2, (255, 255, 255)))
return self.il.Add(b2)
# Arrow drawing
示例9: OnPaint
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def OnPaint(self, evt):
dc = wx.PaintDC(self)
inset = (20, 20, 20, 20)
rect = [inset[0], inset[1], self.GetSize().width-(inset[0]+inset[2]), self.GetSize().height-(inset[1]+inset[3])]
# Calculate exactly how high the wrapped is going to be and put a frame around it.
dc.SetFont(self.font)
dc.SetPen(wx.RED_PEN)
rect[3] = WordWrapRenderer.CalculateHeight(dc, self.text, rect[2])
dc.DrawRectangle(*rect)
WordWrapRenderer.DrawString(dc, self.text, rect, wx.ALIGN_LEFT)
#WordWrapRenderer.DrawTruncatedString(dc, self.text, rect, wx.ALIGN_CENTER_HORIZONTAL,s ellipse=wx.CENTER)
#bmp = wx.EmptyBitmap(rect[0]+rect[2], rect[1]+rect[3])
#mdc = wx.MemoryDC(bmp)
#mdc.SetBackground(wx.Brush("white"))
#mdc.Clear()
#mdc.SetFont(self.font)
#mdc.SetPen(wx.RED_PEN)
#rect[3] = WordWrapRenderer.CalculateHeight(mdc, self.text, rect[2])
#mdc.DrawRectangle(*rect)
#WordWrapRenderer.DrawString(mdc, self.text, rect, wx.ALIGN_LEFT)
#del mdc
#dc = wx.ScreenDC()
#dc.DrawBitmap(bmp, 20, 20)
示例10: _cycleidxs
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def _cycleidxs(indexcount, maxvalue, step):
"""
Utility function used by _colorGenerator
"""
def colormatch(color):
"""Return True if the color comes back from the bitmap identically."""
if len(color) < 3:
return True
global _testBitmap
dc = wx.MemoryDC()
if not _testBitmap:
_testBitmap = wx.Bitmap(1, 1)
dc.SelectObject(_testBitmap)
dc.SetBackground(wx.BLACK_BRUSH)
dc.Clear()
dc.SetPen(wx.Pen(wx.Colour(*color), 4))
dc.DrawPoint(0,0)
if mac: # NOTE: can the Mac not just use the DC?
del dc # Mac can't work with bitmap when selected into a DC.
pdata = wx.AlphaPixelData(_testBitmap)
pacc = pdata.GetPixels()
pacc.MoveTo(pdata, 0, 0)
outcolor = pacc.Get()[:3]
else:
outcolor = dc.GetPixel(0,0)
return outcolor == color
if indexcount == 0:
yield ()
else:
for idx in range(0, maxvalue, step):
for tail in _cycleidxs(indexcount - 1, maxvalue, step):
color = (idx, ) + tail
if not colormatch(color):
continue
yield color
示例11: CalcBoundingBox
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def CalcBoundingBox(self):
## this isn't exact, as fonts don't scale exactly.
dc = wx.MemoryDC()
bitmap = wx.Bitmap(1, 1)
dc.SelectObject(bitmap) #wxMac needs a Bitmap selected for GetTextExtent to work.
DrawingSize = 40 # pts This effectively determines the resolution that the BB is computed to.
ScaleFactor = float(self.Size) / DrawingSize
self.SetFont(DrawingSize, self.Family, self.Style, self.Weight, self.Underlined, self.FaceName)
dc.SetFont(self.Font)
(w,h) = dc.GetTextExtent(self.String)
w = w * ScaleFactor
h = h * ScaleFactor
x, y = self.ShiftFun(self.XY[0], self.XY[1], w, h, world = 1)
self.BoundingBox = BBox.asBBox(((x, y-h ),(x + w, y)))
示例12: WrapToWidth
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def WrapToWidth(self):
dc = wx.MemoryDC()
bitmap = wx.Bitmap(1, 1)
dc.SelectObject(bitmap) #wxMac needs a Bitmap selected for GetTextExtent to work.
DrawingSize = self.LayoutFontSize # pts This effectively determines the resolution that the BB is computed to.
ScaleFactor = float(self.Size) / DrawingSize
Width = (self.Width - 2*self.PadSize) / ScaleFactor #Width to wrap to
self.SetFont(DrawingSize, self.Family, self.Style, self.Weight, self.Underlined, self.FaceName)
dc.SetFont(self.Font)
NewStrings = []
for s in self.Strings:
#beginning = True
text = s.split(" ")
text.reverse()
LineLength = 0
NewText = text[-1]
del text[-1]
while text:
w = dc.GetTextExtent(' ' + text[-1])[0]
if LineLength + w <= Width:
NewText += ' '
NewText += text[-1]
LineLength = dc.GetTextExtent(NewText)[0]
else:
NewStrings.append(NewText)
NewText = text[-1]
LineLength = dc.GetTextExtent(text[-1])[0]
del text[-1]
NewStrings.append(NewText)
self.Strings = NewStrings
示例13: _init_ui
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def _init_ui(self):
"""Add a Sizer that is the same size as the MemoryDC."""
self.hbox = wx.BoxSizer(wx.HORIZONTAL)
self.hbox.Add((self.dc_w, self.dc_h))
self.SetSizer(self.hbox)
示例14: _on_paint
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def _on_paint(self, event):
"""Push the MemoryDC bitmap to the displayed PaintDC."""
dc = wx.PaintDC(self)
dc.Blit(0, 0, self.dc_w, self.dc_h, self.mdc, 0, 0)
示例15: blit
# 需要导入模块: import wx [as 别名]
# 或者: from wx import MemoryDC [as 别名]
def blit(self, bbox=None):
"""
Transfer the region of the agg buffer defined by bbox to the display.
If bbox is None, the entire buffer is transferred.
"""
if bbox is None:
self.bitmap = _convert_agg_to_wx_bitmap(self.get_renderer(), None)
self.gui_repaint()
return
l, b, w, h = bbox.bounds
r = l + w
t = b + h
x = int(l)
y = int(self.bitmap.GetHeight() - t)
srcBmp = _convert_agg_to_wx_bitmap(self.get_renderer(), None)
srcDC = wx.MemoryDC()
srcDC.SelectObject(srcBmp)
destDC = wx.MemoryDC()
destDC.SelectObject(self.bitmap)
destDC.BeginDrawing()
destDC.Blit(x, y, int(w), int(h), srcDC, x, y)
destDC.EndDrawing()
destDC.SelectObject(wx.NullBitmap)
srcDC.SelectObject(wx.NullBitmap)
self.gui_repaint()