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()