gpt4 book ai didi

python - 双击时 Tkinter 程序不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:25 25 4
gpt4 key购买 nike

我是 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)

如果我在 IDLE 中按 F5 来执行这段代码,它就可以正常工作,但是当我双击它的快捷方式时,它会抛出这个错误:

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 的文件我在 Windows 10 上使用 python 3.7,Python 被添加到 PATH,我的其他 python 安装被禁用。

最佳答案

您的桌面上有一个名为 tkinter.py 的文件。任何在其模块搜索路径中包含桌面的程序都将无法找到内置的 tkinter 模块,因为它们具有相同的名称。

尝试将该文件重命名为其他名称。

关于python - 双击时 Tkinter 程序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52517851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com