使用设备上下文
设备上下文用来在wxPython窗口部件上绘画,它应该是局部的,临时性的,不应该以实例变量、全局变量或其它形式在方法调用之间保留。在某些平台上,设备上下文是有限的资源,长期持有wx.DC可能导致你的程序不稳定。由于wxPython内部使用设备上下文的方式,对于在窗口部件中绘画,就存在几个有着细微差别的wx.DC的子类。
wx.BufferedDC: 用于缓存一套绘画命令,直到命令完整并准备在屏幕上绘画。这防止了显示中不必要的闪烁。
wx.BufferedPaintDC: 和 wx.BufferedDC一样,但是只能用在一个 wx.PaintEvent的处理中。仅临时创建该类的实例。
wx.ClientDC: 用于在一个窗口对象上绘画。当你想在窗口部件的主区域上(不包括边框或别的装饰)绘画时使用它。主区域有时也称为客户区。 wx.ClientDC类也应临时创建。该类仅适用于wx.PaintEvent的处理之外。
wx.MemoryDC: 用于绘制图形到内存中的一个位图中,此时不被显示。然后你可以选择该位图,并使用wx.DC.Blit()方法来把这个位图绘画到一个窗口中。
wx.MetafileDC: 在 Windows操作系统上, wx.MetafileDC使你能够去创建标准窗口图元文件数据。
wx.PaintDC: 等同于 wx.ClientDC,除了它仅用于一个 wx.PaintEvent的处理中。仅临时创建该类的实例。
wx.PostScriptDC: 用于写压缩的 PostScript文件。
wx.PrinterDC: 用于 Windows操作系统上,写到打印机。
wx.ScreenDC: 用于直接在屏幕上绘画,在任何被显示的窗口的顶部或外部。该类只应该被临时创建。
wx.WindowDC: 用于在一个窗口对象的整个区域上绘画,包括边框以及那些没有被包括在客户区域中的装饰。非 Windows系统可能不支持该类。