Spyder никогда не «завершает работу»

#user-interface #tkinter #anaconda #spyder

#пользовательский интерфейс #tkinter #анаконда #spyder

Вопрос:

Я загрузил Anaconda и понял, что там больше материала, чем я могу поглотить за всю свою жизнь. Тем не менее, я загрузил Spyder и вставил в рабочую программу, которая работает без ошибок в PyCharm и Thonny.

 """Create a 2 button window"""
import tkinter as tk
from tkinter import *
from tkinter import messagebox
    
#write slogan out in a message box
def write_slogan():
    messagebox.showinfo("our message",
                        "tkinter is easy to use")

#set up the window
root = tk.Tk()              #get the window
root.geometry("100x100 300 300")    #x, y window size and position

#create Hello button
slogan = Button(root,
                   text="Hello",
                   command=write_slogan)
slogan.pack(side=LEFT, padx=10)

#create exit button with red letters
button = Button(root, 
                   text="QUIT", 
                   fg="red", 
                   command=quit)
button.pack(side=RIGHT, padx=10)

#start running the tkinter loop
root.mainloop()
  

Возможно, это не удивляет Spyder mavens, но я был удивлен, увидев, что он не распознал «quit», однако я заменил его на

 command=sys.exit
  

и это, по крайней мере, скомпилировано.
введите описание изображения здесь

Однако, когда я запустил его, окно появилось ПОД окном Spyder. Я нашел это на панели задач. НО, когда я нажал кнопку выхода, программа просто зависла. Мне пришлось зайти в консоль и ввести quit , чтобы остановить процесс. Я думаю, что Spyder на самом деле не предназначен для программирования с графическим интерфейсом.

Комментарии:

1. Не должно ли это быть button = Button(root, text="QUIT",fg="red",command=root.quit)

2. Нет, это не работает.

3. Как насчет root.destroy , quit это встроенная функция python, а не что-то с tkinter.

4. root.destroy работает в Spyder, но разочаровывает то, что он не распознает стандартную функцию Python. Spyder также помечает LEFT и RIGHT как «может быть неопределенный или определенный импорт звездочек формы», что просто глупо.

5. Но имейте в виду, что quit это неправильный способ закрыть окно. для tkinter.