2017-05-05 57 views
0

我试图用tkSimpledialog作为一个更复杂的GUI的一部分接收密码,但是如果提供的密码包括从6,7,8,9,或0键,则在tkSimpledialog的输出中记录错误的符号。如果我在命令行上使用getpass.getpass()进行类似的调用,则会记录正确的符号。tkSimpledialog在移位的数字键上记录错误的符号

做笔记我使用的是英国的键盘,因此产生的符号应该是:

6 - '^' 
7 - '&' 
8 - '*' 
9 - '(' 
0 - ')' 

但不是我所得到的是:

6 - '&' 
7 - '*' 
8 - '(' 
9 - ')' 
0 - '=' 

所以它看起来几乎像符号移动(在6-9范围内是对的),但是在0键旁边是“ - ”,其移位的符号是“_”。

任何想法?

回答

0

总之,这个问题引发了,因为Tk认为用户正在使用德语键盘。用户已经在Linux系统中设置了默认键盘是德语的首选项,但是Linux集群忽略了这一事实并且强制键码绑定成为英式键盘。然而,尽管getpass.getpass()忽略了它,但尽管python忽略了它,但Tk似乎考虑了Linux内的偏好设置。