我正在尝试使用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 ;.
有什么想法吗?
答案 0 :(得分:0)
简而言之,这个问题的出现是因为Tk认为用户使用的是德语键盘。用户在Linux系统中设置了默认键盘为德语的首选项,但是linux集群忽略了这一事实并强制键绑定为英式键盘。然而,尽管getpass.getpass()忽略了它,但Tk似乎考虑了Linux中的偏好设置,尽管python忽略了它。