{/'title/': /'Python Tkinter 错误:AttributeError: ///'_tkinter.tkapp///' object has no attribute ///'success_var///'/', /'description/': /'本文档将解决在 Python Tkinter 应用程序中运行代码后遇到的 ///'AttributeError: ///'_tkinter.tkapp///' object has no attribute ///'success_var///'///' 错误。该错误通常是由于将局部变量与全局变量混淆所致。/', /'keywords/': /'Python, Tkinter, AttributeError, ///'_tkinter.tkapp///'/', ///'success_var///'/', ///'局部变量///'/', ///'全局变量///'/', /'content/': /'根据错误提示,可以看到问题出在以下代码中://n//npython//nsimulate_shortcut(window.success_var, window.failure_var)//n//n//n错误提示显示 ///'_tkinter.tkapp///' 对象没有 ///'success_var///' 属性。这说明 ///'window.success_var///' 属性不存在。//n//n在代码中,///'success_var///' 是一个 ///'StringVar///' 对象,它用于在界面上显示执行成功的次数。然而,在 ///'start_script///' 函数中,我们使用了一个局部变量 ///'success_var///',而不是 ///'window.success_var///'/。//n//n要解决这个问题,你需要将 ///'start_script///' 函数中的 ///'success_var///' 参数改为 ///'window.success_var///'/,并在调用 ///'start_script///' 函数时传入正确的参数。//n//n修改后的代码如下://n//npython//ndef start_script(seconds, countdown_label, success_var, failure_var, window)://n global success_count, failure_count//n//n success_count = 0//n failure_count = 0//n//n if not seconds.isdigit()://n messagebox.showerror(/'错误/', /'输入无效,请重新输入整数类型的秒数!/')//n elif window.stop_flag://n window.stop_flag = False//n window.running_flag = True//n//n seconds = int(seconds)//n countdown_label.config(text=f/'距离下次执行还有 {seconds} 秒/')//n window.success_var.set(/'执行成功0次/')//n window.failure_var.set(/'执行失败0次/')//n//n threading.Timer(1, run_script, args=(seconds, countdown_label, window.success_var, window.failure_var, window)).start()//n elif window.running_flag://n messagebox.showinfo(/'提示/', /'已经有倒计时在执行中,请稍后再试!/')//n else://n seconds = int(seconds)//n countdown_label.config(text=f/'距离下次执行还有 {seconds} 秒/')//n window.success_var.set(/'执行成功0次/')//n window.failure_var.set(/'执行失败0次/')//n//n window.stop_flag = False//n window.running_flag = True//n//n threading.Timer(1, run_script, args=(seconds, countdown_label, window.success_var, window.failure_var, window)).start()//n//n//n然后,在调用 ///'start_script///' 函数时,将 ///'success_var///' 参数改为 ///'window.success_var///'/,如下所示://n//npython//nstart_button = tk.Button(//n window,//n text=/'开始执行/',//n command=lambda: start_script(//n window.seconds_var.get(),//n countdown_label,//n window.success_var,//n window.failure_var,//n window//n )//n)//n//n//n这样修改后,应该能够解决错误提示中的问题。/'}/

Python Tkinter 错误:AttributeError: '_tkinter.tkapp' object has no attribute 'success_var'

原文地址: https://www.cveoy.top/t/topic/qg4d 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录