2011-07-17 86 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

謝謝你對我的理解。如果我註冊了,我會讓你喜歡或什麼。 –