python - NameError:名称“click_entry”未定义(Python)
问题描述
from tkinter import *
class fidgetSpinner:
def spin():
status_str = float(click_entry.get())
window = Tk() # Create a window
window.title("11.2 GUI")
mainframe = Frame(window)
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
click_entry = Entry(mainframe, width=20)
click_entry.grid(column=2, row=1, sticky=(W, E))
click = click_entry.get()
status_str = StringVar()
Label(mainframe, textvariable=status_str).grid(column=2, row=2, sticky=(W, E))
Button(mainframe, text="Fidget Click!", command=spin).grid(column=2, row=3, sticky=W)
Label(mainframe, text="Enter Click Count:").grid(column=1, row=1, sticky=W)
Label(mainframe, text="status:").grid(column=1, row=2, sticky=E)
Label(mainframe, text=click).grid(column=2, row=2, sticky=E)
window.mainloop() # Create an event loop
myWidgets = fidgetSpinner() # Create GUI
myWidgets = fidgetSpinner() # Create GUI
当我运行这个程序并输入一些文本时,当我输入一些数字时
click_entry = Entry(mainframe, width=20)
并点击Fidget Click!
它只是说
Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 1699, in __call__
return self.func(*args)
File "/Users/kalib/OneDrive - University of Tasmania/Programming introduction KIT001/11.2dn GUI/11.2dn GUI.py", line 7, in spin
status_str = float(click_entry.get())
NameError: name 'click_entry' is not defined
此外,我不想制作一个关于指尖陀螺的程序,而这正是我们应该称之为程序的东西。
解决方案
请添加这样的额外行它将解决问题
global click_entry # to declare it as a global variable so yoou can access from any where
click_entry = Entry(mainframe, width=20)
click_entry.grid(column=2, row=1, sticky=(W, E))
这里 click_entry 必须是一个全局变量,并且您正试图在私有变量范围之外访问它
推荐阅读
- windows - Notepad++:删除除数字和连字符模式之外的所有内容
- c++ - 使用 pthread 对 c++ 代码进行并行化
- powershell - 脚本从被排除的 OU 中提取用户
- javascript - VueJS输入占位符文本不显示
- r - R中凸空间的交集
- java - 是否应将 Java Collection 扩展(例如 List)实现的新实例作为返回值而不是现有的返回值返回?
- html - 如何在 html 模板中设置字符串的样式
- java - 使用数据库中的休眠按月和年查询日期
- logging - JVM 使用 Systemd 日志传输并直接输出到 JournalCTL 而不是 STDout
- javascript - Webpack 间歇性反应 Jenkins 构建时出现 javascript 错误