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对象就可以对图形的具体参数进行设置了,比如 下面代码:
就是对某个圆形进行设置。当然,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的介绍
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的介绍
相关文章推荐
- wxpython 中wxOGL的使用 第二篇
- wxpython 中wxOGL的使用 第三篇
- wxPython使用系统顔色
- python使用笔记(第一篇)
- Android studio使用笔记 ---第一篇博文
- Java中JNI的使用详解第一篇:Jni 调用C++图文教程
- Java学习第一篇;命令使用
- [狗尾续貂第一篇]--通向架构师的道路(第十九天)使用maven构建Spring工程 [向lifetragedy致敬!!]
- wxPython中使用剪贴板存取文本数据
- Python使用wxPython、py2exe编写桌面程序
- LoadRunner的简单使用《第一篇》
- Python wxPython库使用wx.ListBox创建列表框示例
- 第一篇:如何使用testcenter统计开发工程师工作质量?
- 第一篇 使用PHP
- wxPython中如何让继承使用了PyGridTableBase的grid切换数据
- 使用boa开发工具开发wxpython——计算器
- Spring security 在项目中的使用第一篇之准备阶段
- 在Ubuntu系统下安装使用Python的GUI工具wxPython
- wxpython中自定义事件的实现与使用方法分析
- android中使用Gson解析普通json数据(致我的第一篇博文)