Python画布建议

1 投票
4 回答
906 浏览
提问于 2025-04-15 14:33

我在找一个非常简单的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

开发信息: http://trac.paulmcnett.com/floatcanvas

撰写回答