Проблемы с тк в ipython / jupyter - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь написать графический интерфейс для запуска с ноутбука 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).

...