Цвет холста графического окна черепахи *не* отображается в файле Postscript (.ps)

Поэтому я создал графическую программу Turtle, в которой пользователь может рисовать множество различных фигур на холсте, и реализовал возможность для пользователя сохранять холст под своим собственным именем в виде файла Postscript (.ps) с помощью файлового браузера. . Файл, по-видимому, без проблем открывается в Preview на моем Macintosh. Я также разрешил пользователю импортировать ЛЮБОЕ изображение .gif, которое он хочет, и установить его в качестве цвета холста окна или даже просто установить сплошной цвет, если он не хочет использовать изображение. Однако я заметил, что всякий раз, когда я изменяю ТОЛЬКО цвет холста окна, сохраняю его как файл postscript, а затем открываю его, цвет холста НЕ отображается, но остальные цвета есть, в том числе черепаший. Что еще более странно, так это то, что если вместо этого я устанавливаю изображение в качестве холста, оно отображается в сохраненном файле постскриптума вместе со всем остальным. Итак, почему это происходит и как это исправить? Мы очень ценим любую помощь! :)

PS Я уже видел похожий вопрос, но он относится к Python 2.x, а у меня 3.5. Мне также не нравится решение этого вопроса, и я надеюсь, что сейчас есть другой, лучший способ исправить это.

Вот мой код сохранения:

def savefirst():
    cnv = getscreen().getcanvas() 
    global hel
    hel = filedialog.asksaveasfilename(defaultextension = '.ps')
    fev = cnv.postscript(file = hel, colormode = 'color')
    try:
        if open(hel, 'r'):
            savefirst.save = True
    except:
        savefirst.save = False

А вот скриншот самого холста в сравнении со скриншотом файла Postscript-

Скриншот самого холста: Снимок экрана

Скриншот файла Postscript (в предварительном просмотре): Скриншот файла Postscript

РЕДАКТИРОВАТЬ: Я много искал, но не могу найти ответ, который подходит для Python 3.x.


person R. Kap    schedule 13.01.2016    source источник
comment
черепаха — это оболочка для tkinter, которая является оболочкой для tcl/tk, которая выполняет весь рисунок на экране. Ваш вопрос является дубликатом, потому что версия Python не имеет отношения к тому, что делает код сохранения в PostScript tcl/tk.   -  person Terry Jan Reedy    schedule 13.01.2016
comment
@TerryJanReedy Я надеялся, что для этого вопроса есть лучшее решение, чем было, но, учитывая ваш ответ, думаю, его нет.   -  person R. Kap    schedule 13.01.2016
comment
В моих экспериментах с выводом .ps из тк на винде проблемы были похуже. Возможно, имело место несоответствие версий, но когда я посмотрел на сам файл .ps, он оказался неправильным. Когда я серьезно хочу захватить вывод tkinter, я либо использую программу захвата экрана, либо изучаю расширение tcl/tk для создания современных файлов .svg (масштабированная векторная графика). (Я никогда не использовал расширение tcl/tk, но я считаю, что есть веб-страницы, объясняющие их. Там либо есть, либо могут быть SO Q и A.)   -  person Terry Jan Reedy    schedule 13.01.2016
comment
@TerryJanReedy Но чего я не понимаю, так это почему в файле Postscript появляется фоновое изображение, но не цвет фона?   -  person R. Kap    schedule 13.01.2016
comment
Р.Кап: Я изменил свой ответ на вопрос, который @TerryJanReedy назвал дубликатом, так что теперь он будет работать как в Python 2, так и в Python 3, так что ваш вопрос является продублируйте сейчас.   -  person martineau    schedule 25.02.2020