我正在使用Python3,我试图将用户在按登录按钮时在用户名和密码框中键入的内容传递给登录功能。登录功能应仅将用户名的标签打包到GUI上。
代码:
import tkinter
from tkinter import *
import sys
def login_gui():
global login_window
global studentid_entry_login
usr_login = StringVar()
pwd_login = StringVar()
login_window=tkinter.Tk()
login_window.title("Login")
login_window.geometry("200x200+500+300")
username_label_login = tkinter.Label(login_window, text="Username:").pack()
username_entry_login = tkinter.Entry(login_window, textvariable=usr_login).pack()
password_label_login = tkinter.Label(login_window, text="\nPassword:").pack()
password_entry_login = tkinter.Entry(login_window, textvariable=pwd_login).pack()
button_login = tkinter.Button(login_window, text="Login", command = login).pack()
login_window.mainloop()
def login():
username = usr_login.get()
label1 = tkinter.Label(login_window, text=username).pack()
return
login_gui()
追溯:
Traceback (most recent call last):
File "C:/Python33/Folder/tkinter-test.py", line 25, in <module>
login_gui()
File "C:/Python33/Folder/tkinter-test.py", line 8, in login_gui
usr_login = StringVar()
File "C:\Python33\lib\tkinter\__init__.py", line 254, in __init__
Variable.__init__(self, master, value, name)
File "C:\Python33\lib\tkinter\__init__.py", line 182, in __init__
self._tk = master.tk
AttributeError: 'NoneType' object has no attribute 'tk'
StringVar
除非Tk
对象已初始化,否则您无法创建一个。
移动您的login_window
行,使其出现在其他作业之前:
login_window=tkinter.Tk()
usr_login = StringVar()
pwd_login = StringVar()
另外,在usr_login
中将不可见login
,因此您将获得一个NameError
。将其设为全局,或考虑将login_gui
和login
放在一个类中,以便他们可以通过访问公共属性self
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句