【问题标题】:NameError: name 'username' is not defined in python with tkinter GUINameError:名称“用户名”未在 python 中使用 tkinter GUI 定义
【发布时间】:2020-04-30 22:01:30
【问题描述】:

我在下面的代码中收到了上面提到的第 28 行的错误。我根本不知道问题是什么。任何帮助表示赞赏,这是代码:

#26/4/2020 28/4/2020 30/4/2020

def sign_in_clicked():
    username = username_entry.get()
    password = password_entry.get()
    username_entry.delete(0, END)
    password_entry.delete(0, END)

from tkinter import *

sign_in = Tk()
sign_in.title("Sign in")

sign_in_label = Label(sign_in,text="Please Sign In!").grid(row=0, column=0, columnspan=2, sticky=W)
username_label = Label(sign_in,text="Username:").grid(row=1, column=0, sticky=W)
password_label = Label(sign_in,text="password:").grid(row=2, column=0, sticky=W)

username_entry = Entry(sign_in, width=20, bg="gray70")
username_entry.grid(row=1, column=1, sticky=W)
password_entry = Entry(sign_in, width=20, bg="gray70")
password_entry.grid(row=2, column=1, sticky=W)

sign_in_button = Button(sign_in, text="Sign In", width=25, command=sign_in_clicked).grid(row=3, column=0, columnspan=2, sticky=W)

output_text = Text(sign_in, width=23, height=6, wrap=WORD, background="DarkOrchid1")
output_text.grid(row=6, column=0, columnspan=2, sticky=W)

if username=="1" and password=="2":
    output_text.insert(END, "hi")

sign_in.mainloop()

【问题讨论】:

  • 你已经在函数sign_in_clicked中定义了用户名。
  • 这能回答你的问题吗? Using global variables in a function
  • 你应该把 if 块放在 sign_in_clicked() 函数中。

标签: python python-3.x function tkinter tkinter-entry


【解决方案1】:

你应该写:

def sign_in_clicked():
global username,password
username = username_entry.get()
password = password_entry.get()
username_entry.delete(0, END)
password_entry.delete(0, END)

我认为这会有所帮助,如果不尝试了解有关全局声明的更多信息。

【讨论】:

    【解决方案2】:

    变量usernamepassword 未定义。

    if username=="1" and password=="2": #here you are referencing non-existant variables
        output_text.insert(END, "hi")
    

    你只能在一个函数中创建usernamepassword;它们在此函数之外不可用。

    您可能想要使用username_entry.get()password_entry.get()

    【讨论】:

      猜你喜欢
      • 2020-04-20
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多