tkSimpledialog在移位的数字键上记录错误的符号

时间:2017-05-05 15:25:23

标签: python tk

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

注意我使用的是英式键盘,因此产生的符号应为:

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

但我得到的是:

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

所以几乎看起来符号移动到一个键上(在6-9范围内都是如此),但是0键旁边是" - ",它的移位符号是& #34; _&#34 ;.

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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