转自:http://thisis.yorven.site/blog/index.php/2017/10/11/wxpython-gdi/
本节讲述 wxPython GDI 。GDI (图形设备接口) 是一个处理图形的接口,可以用它来和图形设备比如屏幕、打印机或者文件来进行交互。GDI 允许编程者在屏幕或打印机上来展示数据,而无需考虑具体设备的细节。GDI 将编程者和硬件隔离开来。
从编程者的角度来看,GDI 是处理图形的一组类和方法。GDI 包括 2D 向量图形、字体和图片。
为了开始绘制图形,我们首先需要创建一个 device context (DC) 对象。在 wxPython 中,device context 即 wx.DC,它使用一个通用的方式来代表多种设备。有些相同的代码可以在多种设备上使用,比如屏幕或打印机。wx.DC 一般不直接使用,编程者一般使用某种衍生类,每一个衍生类可在特定情况下使用。
wx.DC 衍生类
- wx.BufferedDC
- wx.BufferedPaintDC
- wx.PostScriptDC
- wx.MemoryDC
- wx.PrinterDC
- wx.ScreenDC
- wx.ClientDC
- wx.PaintDC
- wx.WindowDC
wx.ScreenDC 是用来在屏幕任意地方绘制图形的。wx.WindowDC 是用来在整个屏幕上绘制的(仅限 Windows 系统)。wx.ClientDC 用来在窗口的 client 区域进行绘制, client 区域是指除了装饰(标题栏和边框)的窗口部分。wx.PaintDC 也是在 client 区域绘制,但它和 wx.ClientDC 存在不同。wx.PaintDC 应该只用在 wx.PaintEvent 来源的情况下,而 wx.ClientDC 则不能。wx.MemoryDC 用来在 bitmap 上绘制图形。wx.PostScriptDC 被用来在任意平台上写入 POSTScript 文件。wx.PrinterDC 被用来操作打印机(仅限 Windows 系统)。