-
-import wx
-
-#----------------------------------------------------------------------
-
-
-class TestPanel(wx.Panel):
- def __init__(self, parent):
- wx.Panel.__init__(self, parent, -1)
- self.Bind(wx.EVT_PAINT, self.OnPaint)
-
-
- def OnPaint(self, evt):
- dc = wx.PaintDC(self)
- try:
- gc = wx.GraphicsContext.Create(dc)
- except NotImplementedError:
- dc.DrawText("This build of wxPython does not support the wx.GraphicsContext "
- "family of classes.",
- 25, 25)
- return
-
- font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
- font.SetWeight(wx.BOLD)
- gc.SetFont(font)
-
- gc.Translate(10, 10)
- self.DrawText(gc, 'normal')
-
- gc.Translate(0, 25)
- gc.PushState()
- gc.Scale(2, 2)
- self.DrawText(gc, 'scaled')
- gc.PopState()
-
- gc.Translate(0, 35)
- self.DrawText(gc, '\nnewline')
-
- def DrawText(self, gc, txt):
- txt = "This is a test: " + txt
- w,h,d,e = gc.GetFullTextExtent(txt)
- ##print w,h,d,e
-
- gc.DrawText(txt, 0, 0)
-
- pen = wx.Pen("red", 1)
- gc.SetPen(pen)
-
- path = gc.CreatePath()
- path.MoveToPoint(-1, -1)
- self.MakeCrosshair(path)
- gc.StrokePath(path)
-
- path = gc.CreatePath()
- path.MoveToPoint(w+1, h+1)
- self.MakeCrosshair(path)
- gc.StrokePath(path)
-
-
-
-
- def MakeCrosshair(self, path):
- x, y = path.GetCurrentPoint()
- path.MoveToPoint(x-5, y)
- path.AddLineToPoint(x+5,y)
- path.MoveToPoint(x, y-5)
- path.AddLineToPoint(x, y+5)
- path.MoveToPoint(x,y)
-
-
-
-
-app = wx.App(False)
-frm = wx.Frame(None, title="Testing GC Text")
-pnl = TestPanel(frm)
-frm.Show()
-app.MainLoop()