【发布时间】:2011-04-29 07:48:06
【问题描述】:
我正在编写一个小型图表绘制应用程序(本质上类似于Graphviz),并且需要一个允许我嵌入能够绘制抗锯齿线条和文本的画布的 GUI 库。我想在窗口的一半有一个文本编辑器来编辑图表代码,在另一半有一个(可能是实时的)预览窗格。
现在我在 tkinter 窗口中有文本编辑器,在单独的 pygame 窗口中有渲染图。这在技术上是可行的,但它很混乱(例如,有两个事件循环),一般来说,我更喜欢将两个部分放在一个窗口中。我一直在寻找整合两者的方法,但一直找不到任何跨平台的东西,pygame 明确建议不要尝试这样做。
另一种方法是让 pygame 将图像导出到文件中并将其加载回 tkinter,但 tkinter 只能读取没有 PIL 的 GIF/PPM(我使用 PIL 不支持的 Python 3)而 pygame 可以不要写 GIF/PPM。我可以向后移植到 Python 2,因为它是一个很小的应用程序,但即便如此,拥有一个用于简单图像转换的大型额外库似乎也不合适,而且到文件的往返对于实时预览来说可能太慢(更别提丑了)。
最后,一个简单的 tkinter 画布几乎是我想要的,只是它不能绘制抗锯齿线,而且对于一个主要目的是绘制线条图形的程序来说,这是不可接受的。
我使用的是 Python 3,因此首选支持它的库,但如果没有办法做到这一点,那么 Python 2 库也可以。库需要跨平台,当然需要的外部包越少越好。
【问题讨论】:
标签: python drawing python-3.x tkinter pygame