请记住,我是编程/ python的初学者,所以如果我的代码无组织或措辞不当,请忽略它,我会变得更好lol
我正在玩tkinter而我正试图获得一个登录屏幕,其中有一个复选框可以切换密码的可见性。我不再理解了。 "显示"参数不会根据分配的变量而改变,我也不知道为什么。
showPassword = IntVar()
show = None
def apply():
print(showPassword.get())
sspass = showPassword.get()
print(type(sspass))
if sspass == 1:
show = None
elif sspass == 0:
show = "*"
spB = Checkbutton(root, text="Toggle Show Password", variable=showPassword).grid(row=10, column=1)
applyButton = Button(root, text="Apply", command=apply).grid(column=1, row=5)
Password = entry(root, show=show)
答案 0 :(得分:0)
我已经安排了一段代码(这对你来说并不完美,但是......)基于你的代码至少可以帮助你进步。我认为你的代码不完整,它也有一些错误。您必须在窗口小部件中配置show参数。更改show var不会对小部件执行任何操作。
您必须使用widget['show'] = somevalue
表单。或.configure
窗口小部件方法。对于这两者,您需要一个小部件参考。如果您在创建它的同一行中对窗口小部件进行网格化,grid
将不返回任何内容,因此您将其松开。分两步打破,并在创建时保持小部件的引用(第一步)。 entry
实际上称为Entry
。这些是我看到的最常见的错误。
from tkinter import Button, Checkbutton, Entry, Tk, IntVar
root = Tk()
showPassword = IntVar()
show = None
def apply():
print(showPassword.get())
sspass = showPassword.get()
print(type(sspass))
if sspass == 1:
Password['show'] = ""
elif sspass == 0:
Password['show'] = "*"
Password.update()
spB = Checkbutton(root, text="Show Password", variable=showPassword).grid(row=10, column=1)
applyButton = Button(root, text="Apply", command=apply).grid(column=1, row=5)
Password = Entry(root, show=show)
Password.grid(row=3, column=1)
root.mainloop()