#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.