Я довольно новичок в tkinter и создал простую небольшую программу:
!python3
from tkinter import *
import tkinter.messagebox
import time
checked = False
pressed = False
rthat = False
rthat2 = False
fe = True
root = Tk()
def hw():
print('Hello World!')
def custom():
wp = input('Input: ')
print(wp)
def Except():
wp = input('Input: ')
raise Exception(wp)
def ChCh():
global checked
if checked:
checked = False
else:
checked = True
def cPop():
global fe
user = input('Input (WINDOW TITLE): ')
user2 = input('Input (TEXT): ')
user3 = input('What type do you want? ("ERROR"/"WARNING"/"INFO"): ')
if user3 == 'INFO':
tkinter.messagebox.showinfo(user, user2)
elif user3 == 'ERROR':
tkinter.messagebox.showerror(user, user2)
elif user3 == 'WARNING':
tkinter.messagebox.showwarning(user, user2)
else:
tkinter.messagebox.showinfo(user, user2)
if fe:
fe = False
tkinter.messagebox.askquestion('First Experience', 'Was your experience with this program good?')
def destrth():
explainL.destroy()
check.destroy()
Pass.destroy()
BackB.destroy()
Submit.destroy()
startS()
def submitted():
global Invalid, Unchecked, rthat, rthat2
if checked:
if Pass.get() == "banana":
root.destroy()
else:
if rthat2:
rthat2 = False
Unchecked.destroy()
if rthat:
Invalid.destroy()
Invalid = Label(root, text="Invalid password!", fg="red")
rthat = True
Invalid.pack()
else:
if rthat:
rthat = False
Invalid.destroy()
if rthat2:
Unchecked.destroy()
Unchecked = Label(root, text="Please check the CheckBox!", fg="red")
rthat2 = True
Unchecked.pack()
def exit1():
root.geometry("400x150")
global explainL, check, Pass, BackB, Submit
subMenu.destroy()
ExitMenu.destroy()
button.destroy()
explainL = Label(root, text="Enter password: ")
check = Checkbutton(root, text="I Agree to the fact that pressing SUBMIT will close this window.", command=ChCh)
Pass = Entry(root)
BackB = Button(root, text="BACK", command=destrth)
Submit = Button(root, text="SUBMIT", command=submitted)
explainL.pack()
Pass.pack()
check.pack()
Submit.pack()
BackB.pack(side=RIGHT)
def startS():
root.geometry("200x220")
global subMenu, button, ExitMenu
if rthat2:
Unchecked.destroy()
if rthat:
Invalid.destroy()
button = Button(root, text="Quit", command=exit1, height=5, width=5)
menu = Menu(root)
root.config(menu=menu)
subMenu = Menu(menu)
menu.add_cascade(label="print", menu=subMenu)
subMenu.add_command(label="Hello World!", command=hw)
subMenu.add_command(label="Custom", command=custom)
subMenu.add_separator()
subMenu.add_command(label="Raise Exception (CUSTOM)", command=Except)
subMenu.add_command(label="Show PopUp (CUSTOM)", command=cPop)
ExitMenu = Menu(menu)
menu.add_cascade(label="Exit", menu=ExitMenu)
ExitMenu.add_command(label="Quit", command=exit1)
button.pack(side=LEFT)
button.place(relx=0.5, rely=0.5, anchor=CENTER)
startS()
root.mainloop()
time.sleep(7)
Этот код прекрасно работает, если я выполняю его, нажимая F5 в режиме IDLE, но когда я дважды щелкаю по ярлыку, он выдает эту ошибку:
Traceback (most recent call last):
File "moreTk.py", line 3, in <module>
import tkinter
File "C:\Users\RolandPC\Desktop\tkinter.py", line 8, in <module>
root = Tk()
NameError: name 'Tk' is not defined
Я пытался выполнить его из терминала, других сообщений в сети, но он просто выбрасывал эту ошибку / другой «не удалось импортировать» эту ошибку / NameErrors.Кроме того, когда я запустил программу, была создана папка ( pycache ), в которой есть файл с именем tkinter.cpython-37.pyc. Я использую python 3.7 в Windows 10, Python добавляется в PATHи другие мои установки python были отключены.