【问题标题】:Python tkinter kept saying my variable to hold the .get() value is not definedPython tkinter 一直说我保存 .get() 值的变量未定义
【发布时间】:2022-11-11 21:12:47
【问题描述】:

我正在学习如何将 .get() 用于 tkinter,并尝试编写可以根据用户输入存储、处理和显示数据的基本 GUI。

现在(我对此很陌生,所以我可能错了)据我所知,我需要使用 .get() 并将其存储到一个变量中以备将来使用。

现在这是我的代码,但是当我运行代码时,它一直说我没有在我定义的函数中定义我的变量。

我用 Pycharm 写的,我在函数第一行写的变量一直变灰。

为什么会发生这种情况,我错过了一些重要的事情吗?

边注:

我做了一些研究,看到了一些关于使用以下方法的结果:

  1. 字符串变量()
  2. fstring, f"{}"

    但我仍然无法弄清楚它是如何工作的,以及它如何影响我的代码,Python 不接受我的变量。

    
    Import tkinter as tk
    
    def event():
        expEntry = entry.get()
    
    window = tk.Tk()
    
    entry = tk.Entry(window)
    button = tk.Button(window,commnad=event())
    expEntry = tk.Label(window,text = expEntry)
    
    entry.pack()
    button.pack()
    expEntry.pack()
    
    window.mainloop()
    
    

【问题讨论】:

    标签: python function variables tkinter python-3.11


    【解决方案1】:

    问题是范围之一。基本上,您的event 函数不知道entry 是什么,因为entry 是在该函数之外声明的,因此如果没有一些调整,在它内部调用entry.get() 将无法正常工作!

    entry = tk.Entry(window)  # declare the entry *before* defining the function
    
    
    def event():
        expEntry = entry.get()
    
    
    window = tk.Tk()
    button = tk.Button(window, command=event)  # there was a typo in 'command' here, FYI
    

    此外,您不需要 () 进行命令绑定,因为您没有在那里调用 event 函数!你只是告诉button 它应该调用的函数的名称。

    【讨论】:

      猜你喜欢
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-25
      • 2022-06-16
      • 2021-10-09
      • 1970-01-01
      • 2021-01-29
      相关资源
      最近更新 更多