Я пытаюсь написать графический интерфейс для запуска с ноутбука ipython / jupyter, но у меня возникают проблемы с использованием tkinter из ноутбука, особенно из-за того, что окно tk gui изящно закрывается. Каковы рекомендации по созданию / запуску графического интерфейса tkinter из jupyter, а затем его закрытию без уничтожения ядра ipython?
Я впервые пытаюсь использовать tkinter. Я нашел много подробной информации о том, как это сделать с более старыми версиями ipython (например, iPython 3.2), но не так много для более поздних версий (я использую iPython 6.5 и Python 3.7.1).
Вот пример, который я пробовал:
%gui tk
class MyApp:
def __init__(self, root):
frame = tk.Frame(root)
frame.pack()
self.button = tk.Button(frame, text="Hello", command=self.hello_world)
self.button.pack(side=tk.LEFT)
self.quitbutton = tk.Button(frame, text="QUIT", fg="red", command=root.destroy)
self.quitbutton.pack(side=tk.RIGHT)
def hello_world(self):
print("Hello World!")
root = tk.Tk()
app = MyApp(root)
Для меня это работает нормально до тех пор, пока я не попытаюсь закрыть окно tkinter: либо нажатие на кнопку «ВЫЙТИ», либо ручное закрытие окна приводит к гибели ядра или к остаточному приложению «python» в моей док-станции Mac, которое делает не уходи, пока я не заставлю его выйти (что также убивает ядро ipython).