具有抗锯齿功能的GUI可嵌入Python绘图窗口小部件

我正在编写一个小图绘制应用程序(精神上类似于Graphviz),并且需要一个GUI库,它允许我嵌入一个能够绘制消除锯齿线和文本的画布.我希望在窗口的一半中有一个文本编辑器来编辑图表代码和另一个(可能是实时的)预览窗格.

现在我在tkinter窗口中有文本编辑器,并且在单独的pygame窗口中有渲染图.这在技术上有效,但它很混乱(例如有两个事件循环),一般来说我更喜欢在一个窗口中同时拥有这两个部分.我已经搜索了将两者结合起来的方法,但是没有找到任何跨平台的东西,而pygame明确建议不要尝试这样做.

另一种方法是让pygame将图像导出到文件中并将其加载回tkinter,但是tkinter只能读取没有PIL的GIF / PPM(我使用的是Python 3,PIL不支持)并且pygame无法写入GIF / PPM.我可以向后移植到Python 2,因为它是一个很小的应用程序,但即便如此,拥有一个大型额外的库进行简单的图像转换似乎并不正确,并且文件的往返可能对于实时预览来说太慢(更不用说丑陋).

最后,一个简单的tkinter画布几乎是我想要的,除了它不能绘制消除锯齿线,并且对于一个主要目的是绘制线条图的程序,这是不可接受的.

我正在使用Python 3,所以支持它的库是首选,但如果没有办法做到这一点,那么Python 2库也可以.库需要跨平台,当然,需要的外部包越少越好.

解决方法:

如果您不介意GTK的外观,pygtk在其canvas小部件中有一个antialising选项(参见this),并且被许多人认为与Tkinter一样强大,尽管它不包含在标准Python安装中.

此外,它与Python 3.x兼容,不能说是大多数非标准库模块和包.

上一篇:bzoj 1606: [Usaco2008 Dec]Hay For Sale 购买干草


下一篇:C#位图绘制不会呈现到屏幕上