Я пишу маленькое приложение для рисования диаграмм (аналогично Graphviz по духу) и мне нужна библиотека GUI, которая позволила бы мне встроить холст, способный рисовать сглаженные линии и текст. Я хочу, чтобы в одной половине окна был текстовый редактор для редактирования кода диаграммы, а в другой - (возможно, в реальном времени) панель предварительного просмотра.
Прямо сейчас у меня есть текстовый редактор в окне tkinter и отрендеренная диаграмма в отдельном Pygame. Технически это работает, но это грязно (например, наличие двух циклов событий), и в целом я бы предпочел иметь обе части в одном окне. Я искал способы их интеграции, но не смог найти ничего кроссплатформенного, и pygame явно предлагает не пытаться это сделать.
В качестве альтернативы можно было бы использовать pygame для экспорта изображения в файл и загрузки его обратно в tkinter, но tkinter может читать только GIF / PPM без PIL (и я использую Python 3, который PIL не поддерживает), а Pygame может напиши GIF / PPM. Я мог бы перенести на Python 2, так как это крошечное приложение, но даже в этом случае наличие большой дополнительной библиотеки для простого преобразования изображений кажется неправильным, и обратное путешествие к файлу, вероятно, будет слишком медленным для предварительного просмотра в реальном времени ( не говоря уже о некрасивом).
Наконец, простой холст tkinter - это почти то, что мне нужно, за исключением того, что он не может рисовать сглаженные линии, а для программы, основной целью которой является рисование линий, это недопустимо.
Я использую Python 3, поэтому библиотеки, которые его поддерживают, предпочтительнее, но если нет способа сделать это, то все равно, что библиотеки Python 2 тоже в порядке. Библиотека должна быть кроссплатформенной, и, конечно, чем меньше внешних пакетов, тем лучше.