wxpython api_wxPython绘图API

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.yiibai.com')

ex.MainLoop()

上面的代码产生下面的输出 -

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值