如何解决我创建了一个登录表单和评分系统我不知道为什么仍然看到错误
我的问题是 "spin" is not defined Pylance(reportUndefinedVariable)
from tkinter import *
from playsound import playsound
#...........................................................
bad=[1,2,3,4,5,6,7,8,9,10]
#...........................................................
def song1():
playsound('g:/song1.wav')
def song2():
playsound('g:/song2.wav')
def rate():
print(spin.get())
#...........................................................
window=Tk()
window.title("login form")
#code
def sign():
if (user.get()=="alireza" and pas.get()=="ramz"):
master=Tk()
master.title("Alireza's App")
Label(master,text="Welcome Alireza",font=("courgette",25),fg="lime").pack()
master.geometry("800x680")
window.destroy()
Label(master,text="").pack()
Label(master,text="this is my first app with python TK i hope you enjoy!",fg="gold",17)).pack()
Label(master,text="").pack()
btn1=Button(master,text="sound 1",bg="lime",width=15,height=2,command=song1)
btn1.pack()
btn2=Button(master,text="sound2",command=song2)
btn2.pack()
Label(master,text="please rate me (from 1 to 10:bad,from 11 to 20:medium,from 21 to 30: good,from 31 to 40:perfect)",fg="red").pack()
spin=SpinBox(master,from_=1,to=4)
spin.pack()
Button(master,text="rate",command=rate).pack()
Label(master,text="").pack()
Button(master,text="quit",bg="red",width=25,command=master.destroy).pack()
master.mainloop()
else:
lbl.pack()
#.........................................................................................
Label(window,text="username",fg="orange",font=("tahoma",16)).pack()
user=Entry(window)
user.pack()
Label(window,text="password",16)).pack()
pas=Entry(window)
pas.pack()
Label(window,text="").pack()
btn=Button(window,text="Enter App",command=sign)
btn.pack()
lbl=Label(window,text="username or password is incorrect",fg="red")
#end
window.geometry("300x200")
window.mainloop()
解决方法
您没有在函数中定义 Spin。您仅在第 41 行中将其作为局部变量执行,因此您无法从您创建的“rate”函数访问它。您可以为传递自旋对象的函数创建一个参数来解决您的问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。