您的位置:首页 > 编程语言 > Python开发

wxpython 中wxOGL的使用 第一篇

2013-04-11 10:23 148 查看
前言:csdn的blog中有关wxpython中绘制2D图形之wxOGL库的使用方式的介绍很少,我在这里做一下总结,也用于我自己以后的回顾。

1.如何使用wxOGL?

OGL库原本是用C++语言写成的,但是wxpython对其进行了了相应扩展,这个库被wxpython收录进了wx.lib.ogl库 中,所以如果使用wxpyhon画图,首先要引入的除了wx库,还要有“import wx.lib.ogl as ogl”作为前提,后面的as ogl是为了代码简略而做的重命名(参考python import 相关文章或者直接参考mysql的重命名机制)。

2.开始绘图

要绘图,首先要有“画布”,wxOGL中的画布是一个叫做ShapeCanvas的对象,此对象继承自“wx.ScrolledWindow”是带有滚动条的窗口,此对象可以用Sizer被用户添加到界面相应的位置。但是如果需要显示出滚动条,还需要设置有关滚动条的一些参数,这里不做介绍。

有了画布,还需要有一个叫做Diagram(图表)的对象,这个对象用来所有添加进来的Shape(形状),接下来要做的,就是将canvas绑定到一个Diagram对象,diagram也绑定到已经这只的canvas,要说diagram有什么用呢?可以理解为,diagram可以实现undo/redo,用来控制整个图形界面的绘制流程。

3.初始化shape

接下来就需要进行形状的初始化了,ogl中收录了所有你需要的2D图形,都是以***Shape结尾的类,亦可以自定义一些Shape,继承自ogl.DrawnShape。Shape对象就可以对图形的具体参数进行设置了,比如 下面代码:

circle = ogl.CircleShape(100.0)
circle.SetX(75.0)
circle.SetY(74.0)
circle.SetPen(wx.RED_PEN)
circle.SetBrush(wx.BLUE_BRUSH)

就是对某个圆形进行设置。当然,OGL的shape有很多,设置方法呢也都大同小异。需要具体对待了。

4.添加Shape

有了shape,接下来就简单了,效用canvas的添加函数AddShape(circle),将图形添加进去就可以了。当然,diagram要调用showAll(True)。

以上就是一个最为简单Helloworld图形绘制的使用方式,我想在后面几篇中写一点稍微高级的用法,希望有时间来维护。

另附上几个官方资源

http://wxpython.org/docs/api/wx.lib.ogl-module.html

此传送门中收录了有关wxOGL的整体类介绍。

http://biolpc22.york.ac.uk/wx/contrib/docs/html/ogl/ogl.htm

此传送门中有Object Graphics Library 3.0的介绍
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: