GDI+(圖形繪製介面),CoreGraphics和Cairo庫形成wxPython繪圖API的框架。wx.GraphicsContext是主要繪製對象,使用它來創建各種設備上下文對象。
wx.DC是一個抽象類。它的派生類用於渲染的圖形和文字在不同的設備。關聯設備類 -
-
wx.ScreenDC − 使用它描繪在螢幕上,而不是一個單獨的窗口。
-
wx.ClientDC − 使用它描繪在窗口(無邊框等裝飾的一部分)的客戶區域,但不從wxPaintEvent內使用它。
-
wx.PaintDC − 使用它描繪在窗口的客戶區域,但只能從wxPaintEvent內。
-
wx.WindowDC − 使用它描繪的窗口,包括裝飾的整個區域。這可能不提供對非Windows平臺。
wxPython中的繪圖API提供不同的功能繪製形狀,文字和圖像。需要繪製用途,如顏色,畫筆,刷子和字體的對象也可以使用GDI類構造。
wx.Colour類
顏色對象表示RGB(紅,綠和藍)的亮度值,每個是在0-255的比例組合。還有一些預定義的顏色對象-
- wxBLACK
- wxBLUE
- wxCYAN
- wxGREEN
- wxYELLOW
- wxLIGHT_GREY
- wxRED
- wxWHITE
顏色以RGB值自定義組合形成為wx.Colour對象。
wx.Colour(r,g,b)
wx.Pen類
Pen對象確定的圖形像線,矩形,圓等的形狀的顏色,寬度和樣式
預定義的畫筆對象是-
wxBLACK_DASHED_PEN |
wxBLACK_PEN |
wxBLUE_PEN |
wxCYAN_PEN |
wxGREEN_PEN |
wxYELLOW_PEN |
wxGREY_PEN |
wxLIGHT_GREY_PEN |
wxMEDIUM_GREY_PEN |
wxRED_PEN |
wxTRANSPARENT_PEN |
wxWHITE_PEN |
預定義的畫筆樣式是 -
wx.SOLID |
wx.DOT |
wx.LONG_DASH |
wx.SHORT_DASH |
wx.DOT_DASH |
wx.TRANSPARENT |
wx.Brush 類
Brush是另一個基本圖形對象必須填寫的形狀,如矩形,橢圓形,圓形等的背景
自定義畫筆對象需要wx.Colour和畫筆的樣式參數。以下是預定義的刷樣式列表 -
wx.SOLID |
wx.STIPPLE |
wx.BDIAGONAL_HATCH |
wx.CROSSDIAG_HATCH |
wx.FDIAGONAL_HATCH |
wx.CROSS_HATCH |
wx.HORIZONTAL_HATCH |
wx.VERTICAL_HATCH |
wx.TRANSPARENT |
wxPython有許多便於繪製不同的形狀,文本和圖像的函數。
S.N. |
函數與說明
|
---|---|
1 |
DrawRectangle()
按給定尺寸繪製矩形
|
2 |
DrawCircle()
用給定的點為中心以及半徑繪製一個圓
|
3 |
DrawEllipse()
用給定的x和y半徑繪製一個橢圓
|
4 |
DrawLine()
繪製兩個wx.Point對象之間的線
|
5 |
DrawBitmap()
在給定的位置繪製圖像
|
6 |
DrawText()
顯示在指定的位置給定的文本
|
實例
上述函數是在下面的例子中實現的,利用畫筆,畫筆,顏色和字體的對象。
完整的代碼如下 -
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,50) dc.SetBrush(wx.Brush(wx.Colour(255,255,255))) dc.DrawCircle(300,125,30) 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) ex = wx.App() Mywin(None,'Drawing Demo - www.xuhuhu.com') ex.MainLoop()
上面的代碼產生下麵的輸出 -
上一篇:
wxPython多文檔介面
下一篇:
wxPython拖放