wxPython繪製相關圖形
阿新 • • 發佈:2019-02-17
GDI+(圖形繪製介面),CoreGraphics和Cairo庫形成wxPython繪圖API的框架。wx.GraphicsContext是主要繪製物件,使用它來建立各種裝置上下文物件。
- wx.DC是一個抽象類。它的派生類用於渲染的圖形和文字在不同的裝置。關聯裝置類 -
- wx.ScreenDC − 使用它描繪在螢幕上,而不是一個單獨的視窗。
- wx.ClientDC − 使用它描繪在視窗(無邊框等裝飾的一部分)的客戶區域,但不從wxPaintEvent內使用它。
- wx.PaintDC − 使用它描繪在視窗的客戶區域,但只能從wxPaintEvent內。
- wx.WindowDC − 使用它描繪的視窗,包括裝飾的整個區域。這可能不提供對非Windows平臺。
例項一.圖形,文字,圖片顯示
import wx from PIL import Image class Frame1(wx.Frame): def __init__(self, parent): super(Frame1, self).__init__(parent, title='try', pos=(100, 200), size=(500, 300)) self.Bind(wx.EVT_PAINT, self.on_paint) # 將客戶端顯示在螢幕中間 self.Center() self.Show(True) def on_paint(self, event): dc = wx.PaintDC(self) # wx.Brush物件決定了背景的顏色和樣式。 brush = wx.Brush('white') dc.SetBackground(brush) # 設定背景色並清空裝置上下文(dc.Clear())。必須呼叫dc.Clear() # 其作用是產生一個wx.EVT_PAINT事件,這樣,設定的背景就顯示出來了,否則螢幕顏色不會改變。 # 使用當前背景刷來清除裝置上下文 dc.Clear() # 畫線,位置是相對於pos點 pen = wx.Pen(wx.Colour(0, 0, 255), 1, wx.SOLID) dc.SetPen(pen) dc.DrawLine(10, 10, 390, 190) # 新增文字 font = wx.Font(18, wx.ROMAN, wx.ITALIC, wx.NORMAL) dc.SetFont(font) dc.DrawText("Hello wxPython", 200, 10) # 畫矩形 brush_rec = wx.Brush('red') dc.SetBrush(brush_rec) dc.DrawRectangle(100, 100, 140, 140) # 新增圖片 # 修改影象寬度和高度 img = Image.open("python.jpg") img = img.resize((180, 105)) img.save("python.jpg") dc.DrawBitmap(wx.Bitmap("python.jpg"), 300, 100, True) if __name__ == '__main__': app = wx.App() Frame1(None) app.MainLoop()