Сбой Python Turtle при открытии второго окна - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть небольшая программа, в которой я хотел бы открыть окно черепахи Python, отобразить что-либо, закрыть по щелчку пользователя, а затем открыть следующее окно. Пример программы для этого

import turtle

window = turtle.Screen()
t1 = turtle.Turtle()
t1.forward(100)
window.exitonclick()

window2 = turtle.Screen()
t2 = turtle.Turtle()
t2.forward(100)
window2.exitonclick()

Программа вылетает при попытке открыть второе окно. Это с Python3.6 на компьютере Mac OS X. Я видел некоторые ссылки на сбои при повторном запуске программы дважды и видел совет по добавлению вызова bye () после закрытия первого окна, но мне пока не удалось обойти это.

Есть предложения?

1 Ответ

0 голосов
/ 05 сентября 2018

Похоже, вам, вероятно, следует использовать другую функцию, чем exitonclick, чтобы выйти из экрана или очистить его. Но я смог заставить ваш код работать, запустив turtle.bye () и выполняя попытку / исключая его в случае ошибок.
Это определенно не элегантное решение, но это обходной путь для правильного отображения второго окна.

import turtle

window = turtle.Screen()
t1 = turtle.Turtle()
t1.forward(100)
window.exitonclick()

try:
    turtle.bye()
except Exception:
    pass

window2 = turtle.Screen()
t2 = turtle.Turtle()
t2.forward(100)
window2.exitonclick()
...