Python 有人能回答为什么这个Tkinter没有';不行? 我很困惑

Python 有人能回答为什么这个Tkinter没有';不行? 我很困惑,python,checkbox,tkinter,passwords,python-3.6,Python,Checkbox,Tkinter,Passwords,Python 3.6,请记住,我是编程/python的初学者,所以如果我的代码没有组织或措词不好,请忽略它,我会变得更好的lol 我只是在玩tkinter,我试图得到一个登录屏幕,其中有一个复选框,用于切换密码的可见性。我只是不明白了。“show”参数不会根据分配给它的变量而改变,我不知道为什么 showPassword = IntVar() show = None def apply(): print(showPassword.get()) sspass = showPassword.get()

请记住,我是编程/python的初学者,所以如果我的代码没有组织或措词不好,请忽略它,我会变得更好的lol

我只是在玩tkinter,我试图得到一个登录屏幕,其中有一个复选框,用于切换密码的可见性。我只是不明白了。“show”参数不会根据分配给它的变量而改变,我不知道为什么

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) 

我已经根据你的代码安排了一段代码(这对你来说并不完美,但是…),至少对你的进步有用。我想你的代码是不完整的,它也有一些错误。您必须在小部件中配置show参数。更改show变量不会对小部件产生任何影响。 您必须使用表单
小部件['show']=somevalue
。或
.configure
小部件方法。对于这两者,您都需要一个小部件参考。如果在创建小部件的同一行中对小部件进行网格化,
grid
将不返回任何内容,因此您将其释放。将其分为两步,并在创建时保留小部件的引用(第一步)<代码>条目实际上被称为
条目
。这些都是我看到的最可能的错误

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()

如果你不描述你的代码要做什么,没有人能告诉你为什么你的代码不起作用。@eugenhu我说了:“我正在尝试获得一个登录屏幕,其中有一个复选框,可以切换密码的可见性”是的,但是你的问题中包含的代码有什么问题,没有密码输入小部件或任何东西,它应该在做什么?@eugenhu抱歉,哈哈,我修好了。当我发布这篇文章的时候已经是深夜了,我无法正确思考,谢谢你的回答,但是我在我的问题中说我是一个初学者,我厌倦了这些批评lmfaoo@StevenTautonico别误会我。我的意思是我的片段不是一个完美的例子,你可以遵循。我指的不是你的代码,而是我的。我知道你是个初学者,只是想帮忙。不要介意批评,只需先在文档和答案中搜索你的问题,然后在发布问题时,通过发布一个包含失败代码的mcve来显示你的努力(你做到了)。你通常会很快得到帮助。你可以通过编辑来改进帖子,但如果否决票太多,你可以删除帖子,改进后再发布。谢谢你,我真的很感激你的帮助,我真的很恼火,因为即使我说我是初学者,大多数人都会立即认为我不是,然后说我屁话,批评我。我误读了你的话,但是谢谢,我告诉你哦,我用谷歌搜索了一下,什么也找不到lol@StevenTautonico使用[tkinter]标记搜索SO。这里有很多信息。谷歌可能会把你送到这里来。找到一个关于tkinter的好教程。试试这里。tkinter一开始可能会让人困惑。搜索python教程。在不了解python基础知识的情况下学习tkinter会更加有趣。