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

标签 python drawing python-3.x tkinter pygame

我正在编写一个小型图表绘制应用程序(在本质上类似于 Graphviz),并且需要一个 GUI 库来允许我嵌入能够绘制抗锯齿线条和文本的 Canvas 。我想在窗口的一半有一个文本编辑器来编辑图表代码,在另一半有一个(可能是实时的)预览 Pane 。

现在我在 tkinter 窗口中有文本编辑器,在单独的 pygame 窗口中有渲染图。这在技术上是可行的,但它很困惑(例如,有两个事件循环),而且通常我更喜欢将两个部分都放在一个窗口中。我已经搜索了将两者集成的方法,但未能找到任何跨平台的方法,pygame 明确建议不要尝试这样做。

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

最后,一个简单的tkinter Canvas 几乎就是我想要的,除了它不能画抗锯齿线,对于一个主要目的是画线图的程序来说,这是不能接受的。

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

最佳答案

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

此外,它与 Python 3.x 兼容,这对于大多数非标准库模块和包来说是不可能的。

关于python - 具有抗锯齿功能的可嵌入 GUI 的 Python 绘图小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3999780/

相关文章:

python - Python 3.5 上的 Gensim 1.0.1 TypeError : object of type 'map' has no len()?

javascript - 谷歌地球引擎: Getting time series for reduceRegion

javascript - HTML5 canvas 绘制带旋转的图像部分

python-3.x - 如何使用Python中的语音识别自动检测语言

python - 如何添加两个 pandas 数据框并保留两个索引

python-3.x - VS Code 未加载现有的 Azure Functions

Python地理编码器库: How to set proxy IP?

python - PIP virtualenv 和 APT python-virtualenv 有什么区别?

c# - 将旋转多边形内的内容传输到位图

javascript - 如何在 HTML 或 javascript 中绘制渐变背景?