2011-07-17 51 views
2

有人可以帮助我请...我想开始我的第一个编程项目。它将在Python中实现。python win32api.LoadKeyboardLayout(),不会改变IDLE shell中的语言吗?

我需要一个文本框(我使用的是wxpython)。如果用户在此文本框中输入任何文本,我希望它显示为阿拉伯文。当光标落在给定的文本框中时,我想通过将用户键盘自动更改为阿拉伯文布局。

所以我发现这个pywin32模块,它有一个函数LoadKeyboardLayout() 所以我想在IDLE中测试这个,看看我是否可以让它接受阿拉伯文文本到IDLE,看它是否工作。所以我进入,进入IDLE:

win32api.LoadKeyboardLayout('00000401',1) 

这然后返回,67175425,十六进制的十进制等效值:“4010401” whcih我相信是阿拉伯语的区域设置ID。所以我觉得哇!我已经完成了,但是当我在这之后尝试打字时,在IDLE窗口中,它继续输入普通英文字符。

有人可以请解释我的错误,并指导我一个很好的解决方案。


UPDATE

好吧,我一直在试图解决过这个问题,因为发布这个该死的问题。 没有运气。 然后,我想,“好的,拧紧它,而不是在IDLE中对它进行quicly测试,我会在原始的源代码中对它进行试验。” WTF - 它第一次工作,给予我想要的确切行为。 然后,我在另一个IDE中尝试了它,在解释窗口中,并且再次,它马上工作!

很明显我的问题是在解释模式下使用IDLE。 任何人都可以解释它为什么不能在IDLE shell中工作吗?在Windows

+0

这听起来像是一件很奇怪的事情。例如,如何在英文键盘上输入阿拉伯文? –

+0

在语音上例如's'与's'具有相同的声音,所以'''键可用于此。以此类推。 或只是使它像窗口使他们的阿拉伯语布局,如果你选择阿拉伯语作为输入语言。在这种情况下,看似随机的键被分配给各种阿拉伯字母。我想你可以购买键盘覆盖贴纸,以帮助识别哪些键可以用于阿拉伯文字母。 –

回答

5
  1. 键盘布局设置为每个进程(从父进程继承)
  2. IDLE运行在后台进程的Python脚本独立于它的GUI

所以,你已经成功地改变运行脚本的背景Python进程的键盘布局,但不是IDLE GUI的键盘布局。

+0

谢谢你对我的理解。如果我注册了,我会让你喜欢或什么。 –