【发布时间】:2025-12-09 09:35:01
【问题描述】:
这是我第一个使用 Tkinter 的项目,如果问题很容易解决,请原谅。 根据用户从下拉列表中选择的选项,我调用一个函数,该函数在框架上创建和放置某些小部件(例如条目)。然后,当按下另一个按钮时,我想访问此条目中的文本。但是,这似乎给了我错误(说小部件未定义),因为我想访问我在调用函数时创建的小部件。
我看到的一个明显的解决方案是创建我想在函数之外使用的所有可能的小部件,并且仅在调用函数时放置它们。这似乎很草率,并产生了更多问题。还有其他解决方法吗?
提前致谢!
这是我在框架上创建和放置小部件的函数。
def loadBook():
print("book is loaded")
#Authors
labelAuth1 = tk.Label(frame, text="Author 1 Name:")
entryAuth1 = tk.Entry(frame)
labelAuth1.place(relwidth=0.23, relheight=0.08, rely=0.1)
entryAuth1.place(relheight=0.08, relwidth=0.18, relx=0.3, rely=0.1)
这是一个函数的 sn-p,它使用我在上面创建的条目小部件的输入:
def isBook():
if len(entryAuthSur1.get())==0:
pass
else:
bookString = ""
bookString += entryAuthSur1.get()
当第二个函数执行时,我得到一个运行时错误,entryAuthSur1 未定义。
【问题讨论】:
-
你能告诉我们你的代码吗?我的猜测是变量不是全局的。
-
@TheLizzard 感谢您的想法,我刚刚编辑以显示代码
-
就在
print("book is loaded")和if len(entryAuthSur1.get())==0:之前添加global entryAuthSur1。那应该可以解决您的问题。