You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何.get()无法读取Entry输入字符串?NameError问题求助

问题解决:NameError: name 'researcher' is not defined

问题根源

  1. 变量作用域限制:researcher是intro()函数内的局部变量,header()函数无法跨作用域访问该变量。
  2. 输入获取时机错误:在Entry组件刚创建时就调用r_var.get(),此时用户还未输入内容,且后续输入的内容也无法同步到researcher变量中。

修复后的完整代码

# Intro Entry Test
import tkinter as tk
from tkinter import *
from tkinter import ttk

##### Master Window
master = tk.Tk()
master.configure(background='lightgreen')     ## Background color
master.geometry('1500x900')
master.title(' Kansas Species Key 31xz ')         ## Master Title
master.grid()

### Create the Master Canvas #####
w = Canvas(master, width=1500, height=900)
w.grid()

# 将绑定Entry的StringVar定义为全局变量,实现跨函数访问
r_var = tk.StringVar()

### Print Header to screen
def header():
    # 点击提交按钮时才获取输入框的最新内容
    researcher = r_var.get()
    Label(master, text=researcher, font=("arial bold", 12)).place(x=125, y=4) 

### Introduction Screen         
def intro():
    # Frame for Box
    content = ttk.Frame(master, relief="raised", borderwidth=6, padding=(3,3,12,12))      
    content.grid(column=0, row=0)

    # Frame for Introduction Box Content
    frame1 = ttk.Frame(content, borderwidth=10, relief="raised", width=500, height=450)     
    frame1.grid(column=0, row=0, columnspan=2, rowspan=1, sticky=(N, S, E, W))

    researcherlbl = ttk.Label(frame1, text="Researcher", justify=RIGHT, relief="raised",
    font="Times 14 bold")  
    researcherlbl.grid(column=0, row=10, padx=5, pady=5, sticky=E)

    r_name = ttk.Entry(frame1, justify="left", textvariable=r_var)
    r_name.grid(column=1,row=10, sticky=W)

    # Submit Button
    submit = ttk.Button(frame1, text="Submit", command=header)
    submit.grid(column=1, row=16)

##### Introduction 
intro()                         

##### MAIN LOOP ###########
mainloop() 

核心修复说明

  • 把r_var设为全局变量,让intro()和header()两个函数都能访问到这个绑定了输入框的变量。
  • 将r_var.get()的调用移到header()函数内,确保只有用户点击提交按钮时才读取输入框的最新内容。
  • 修正了原代码中esearcherlbl的笔误,改为researcherlbl,避免额外的未定义错误。

内容的提问来源于stack exchange,提问作者Miller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:05:23