sehnsucht 发表于 2020-6-7 13:18:50

如何利用tkinter实现输入密码是否显示

我知道可以用enter中的show参数,但是如何利用enter和checkbutton实现勾选与否让密码在显示与不显示之间切换呢

Twilight6 发表于 2020-6-7 13:40:51

from tkinter import *

def show_password():
    if var.get() == 1:
      var.set(0)
      e.config(show='')
    else:
      var.set(1)
      e.config(show='*')

root = Tk()

var = IntVar()
c = Checkbutton(root,text='显示密码',variable=var,command=show_password)
c.pack()

var = IntVar()
e = Entry(root)
e.pack()


mainloop()

sehnsucht 发表于 2020-6-7 14:15:24

Twilight6 发表于 2020-6-7 13:40


非常感谢,但是有一些疑惑,为什么13行和17行这里var要出现两次,我试过只有一个var的话是无法勾选的 为什么呢,还有就是show_password函数里为什么要对var的值进行重置

sehnsucht 发表于 2020-6-7 14:23:59

Twilight6 发表于 2020-6-7 13:40


重置我理解了,但是还不明白为什么要有两个var

Twilight6 发表于 2020-6-7 14:44:13

sehnsucht 发表于 2020-6-7 14:23
重置我理解了,但是还不明白为什么要有两个var

抱歉,是我的错哈哈,因为点击时候是 1 取消是 0被我函数里面设置了 ==1 的时候设置 0 ,而我前面重新赋值之后导致var 变成新的了哈哈哈,错误的方法这下面才对

from tkinter import *

def show_password():
    if var.get() == 1:
      e.config(show='')
    else:
      e.config(show='*')

root = Tk()

var = IntVar()
c = Checkbutton(root,text='显示密码',variable=var,command=show_password)
c.pack()

e = Entry(root)
e.pack()


mainloop()

sehnsucht 发表于 2020-6-7 14:58:01

Twilight6 发表于 2020-6-7 14:44
抱歉,是我的错哈哈,因为点击时候是 1 取消是 0被我函数里面设置了 ==1 的时候设置 0 ,而我前面重新 ...

十分感谢
页: [1]
查看完整版本: 如何利用tkinter实现输入密码是否显示