简单介绍一个Pthon的绘图库wxPython.

GDI+(图形绘制接口),CoreGraphics和Cairo库形成wxPython绘图API的框架。wx.GraphicsContext是主要绘制对象,使用它来创建各种设备上下文对象。

wx.DC是一个抽象类。它的派生类用于渲染的图形和文字在不同的设备。关联设备类 -

  • wx.ScreenDC − 使用它描绘在屏幕上,而不是一个单独的窗口。
  • wx.ClientDC − 使用它描绘在窗口(无边框等装饰的一部分)的客户区域,但不从wxPaintEvent内使用它。
  • wx.PaintDC − 使用它描绘在窗口的客户区域,但只能从wxPaintEvent内。
  • wx.WindowDC − 使用它描绘的窗口,包括装饰的整个区域。这可能不提供对非Windows平台。

wxPython中的绘图API提供不同的功能绘制形状,文字和图像。需要绘制用途,如颜色,画笔,刷子和字体的对象也可以使用GDI类构造。

代码实例:

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, 8)
dc.SetBrush(wx.Brush(wx.Colour(255, 255, 255)))
dc.DrawCircle(300, 125, 5) 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) if __name__ == '__main__':
ex = wx.App()
Mywin(None, 'wxpython test')
ex.MainLoop()

  运行效果如下:

最新文章

  1. Andriod学习笔记2:“Your content must have a ListView whose id attribute is 'android.R.id.list'”问题的解决办法
  2. Web前端:11个让你代码整洁的原则
  3. 特征向量-Eigenvalues_and_eigenvectors#Graphs
  4. 用t4模板和head.js进行css和js的版本控制
  5. 快速用springmvc搭建web应用-超越昨天的自己系列(10)
  6. PHP基础语法3
  7. windows下如何使用ssh远程登录Linux
  8. 【转载】python 模块 - random生成随机数模块
  9. 安装mysql-python报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 65: ordinal not in range(128)
  10. Python Selenium设计模式-POM
  11. JavaScript判断变量数据类型
  12. hibernate的一级和二级缓存
  13. 最近关于mysql的造型,binlog使用,以及阿里云上线数据处理错误导致被处罚的思考
  14. 网络编程之Socket详解
  15. 编写一致的符合习惯的javascript
  16. python学习笔记——创建事件对象Event
  17. python实现测试报告的bug统计
  18. .NET 4.0 Tuple 元组
  19. spoj14846 Bribe the Prisoners
  20. ASIHTTPRequest-Cookie的使用

热门文章

  1. 洛谷P8924题解
  2. 【Java】自定义mybatis
  3. web.py 中的分页设计
  4. Java基础学习:12、类变量和类方法(静态变量/方法)
  5. TP3.2.x判断手机端访问,同一个域名在PC和手机端展示不同模板(半独立式网站)
  6. SQL开窗函数用法
  7. 剑指 Offer II 堆
  8. python之目录结构01
  9. hMailServer搭建
  10. python快速制作可视化报表