wxPython绘图API
简单介绍一个Pthon的绘图库wxPython.
GDI+(图形绘制接口),CoreGraphics和Cairo库形成wxPython绘图API的框架。wx.GraphicsContext是主要绘制对象,使用它来创建各种设备上下文对象。
wx.DC是一个抽象类。它的派生类用于渲染的图形和文字在不同的设备。关联设备类 -
- wx.ScreenDC − 使用它描绘在屏幕上,而不是一个单独的窗口。
- wx.ClientDC − 使用它描绘在窗口(无边框等装饰的一部分)的客户区域,但不从wxPaintEvent内使用它。
- wx.PaintDC − 使用它描绘在窗口的客户区域,但只能从wxPaintEvent内。
- wx.WindowDC − 使用它描绘的窗口,包括装饰的整个区域。这可能不提供对非Windows平台。
wxPython中的绘图API提供不同的功能绘制形状,文字和图像。需要绘制用途,如颜色,画笔,刷子和字体的对象也可以使用GDI类构造。
代码实例:
import wx class Mywin(wx.Frame): def __init__(self, parent, title): super(Mywin, self).__init__(parent, title=title, size=(500, 300)) self.InitUI() def InitUI(self): self.Bind(wx.EVT_PAINT, self.OnPaint) self.Centre() self.Show(True) def OnPaint(self, e): dc = wx.PaintDC(self) brush = wx.Brush("white") dc.SetBackground(brush) dc.Clear() # dc.DrawBitmap(wx.Bitmap("python.jpg"), 10, 10, True) color = wx.Colour(255, 0, 0) b = wx.Brush(color) dc.SetBrush(b) dc.DrawCircle(300, 125, 8) dc.SetBrush(wx.Brush(wx.Colour(255, 255, 255))) dc.DrawCircle(300, 125, 5) font = wx.Font(18, wx.ROMAN, wx.ITALIC, wx.NORMAL) dc.SetFont(font) dc.DrawText("Hello wxPython", 200, 10) pen = wx.Pen(wx.Colour(0, 0, 255)) dc.SetPen(pen) dc.DrawLine(200, 50, 350, 50) dc.SetBrush(wx.Brush(wx.Colour(0, 255, 0), wx.CROSS_HATCH)) dc.DrawRectangle(380, 15, 90, 60) if __name__ == '__main__': ex = wx.App() Mywin(None, 'wxpython test') ex.MainLoop()
运行效果如下: