Python画布建议
我在找一个非常简单的Python画布。我真正需要的是能够画线和圆圈,移动它们或者把它们删除,还能滚动画布(也就是说,我希望能在一个无限大的画布上画画,然后随意滚动)。理想情况下,代码看起来应该像这样:
c = Canvas()
l1 = c.line((x0, y0), (x1, y1))
l2 = c.line((x2, y2), (x3, y3))
c1 = c.circle(((x0 + x1 + x2 + x3)/4, (y0 + y1 + y2 + y3)/4), 10)
c1.delete()
l1.move(5, 10)
c.scroll(5, 5)
这只是我理想中的代码,我可以接受一些基本的框架,但我真的不需要什么复杂的功能。可能我唯一真正想要的就是能嵌入一个在Windows上看起来不错的图形界面(这就排除了Tkinter),而且这个界面不能太重(这可能就排除了GTK/Cairo)。
我使用的是Python 2.6。如果需要其他信息,我很乐意提供。
4 个回答
0
你可能想看看这个问题:适合图形应用的快速像素精度2D绘图API?
第一个推荐是使用 pyglet,链接在这里:http://code.google.com/p/pyglet/
1
你可以使用老牌的Tkinter和它的Canvas小部件。它能满足你所有的需求,除了不能滚动画布。它有两个很大的优点:1)它很轻便,2)几乎所有的Python安装中默认都有它。
新墨西哥科技大学维护了关于它使用的总结文档。
1
我最后选择了使用WxPython里的FloatCanvas。虽然我不太建议其他人也这样做,因为它依赖于NumPy,而NumPy的安装包非常大,而且几乎没有文档(我编写的应用程序中很大一部分都是在阅读源代码)。不过,它确实很好用,可以帮你做很多事情。
WxWiki: http://wiki.wxpython.org/FloatCanvas
文档: http://www.wxpython.org/docs/api/wx.lib.floatcanvas-module.html