2012-03-12 81 views
0

我有一個想法來編寫一個修改Linux上文本字段行爲的程序。我想要的是,程序將根據所有系統中文本字段的文本方向自動更改文本輸入語言。例如,如果我安裝了英語和希伯來語,並且在某些通常從右向左輸出文本的軟件中單擊文本字段,則程序會自動將文本輸入語言更改爲希伯來語。如果我點擊從左向右輸出文本的文本字段,程序會將語言切換爲英文。Linux,更改文本字段行爲

我對Linux上的系統或UI編程瞭解不多(在Windows上更有經驗),我不知道從哪裏開始。有沒有辦法在Gnome和KDE的GUI元素上註冊'鉤子'?也許我應該把它添加到Gnome和KDE的代碼中?

我很感激任何提示如何開始。

非常感謝,

Oded。

+2

首先學習GTK和Qt。然後,根據您的意願專門設置文本輸入小部件。在適當的Gtk&Qt論壇上討論這個問題,並提出它。祝你好運(你需要它)。 – 2012-03-12 06:57:43

回答

1

首先一些變量:

用於GUI窗口工具包

通常文本字段對準明確地由程序或一組是基於設定所檢測到的系統區域(在Qt和GTK至少)無論是在相關文本對象QLineEdit在Qt或GtkEntry在GTK或更高級別的佈局對象,包含它們。

,爲了實現至少爲自己的程序的功能說,你需要確定一些事情

  • GTK或Qt的或兩者兼而有之?如果你正在基礎級實現(即不僅僅是綁定),那麼這也意味着C或C++或兩者兼而有之?
  • GTK 2或GTK 3,QT 3或QT4?
  • 每個GUI工具包上的哪些文本小部件要重寫?就像我上面提到的那兩個,或者任一個庫中的任何或所有可能的文本小部件?
  • 您是否希望自己的行爲能夠正常工作?例如,如果您有LTR語言環境集,您是否希望右對齊的文本小部件切換輸入法?
  • 你想使用什麼切換輸入法的方法? SCIM,XIM,ibus還是僅僅是免費模式(GTK和Qt格式)?這些輸入方法是否支持以編程方式更改?
  • 如果用戶安裝了2個或更多LTR語言或安裝了2個以上RTL語言,會發生什麼情況?他們是否會選擇使用哪種語言?目前的語言環境設置是否受到尊重?

假設你想下去immodule路徑

請參閱以下資源的Qt

參見以下資源,GTK

的一般方法是相同的。

  1. 實現事件處理函數,用於文本輸入到窗口小部件中但在窗口小部件中顯示之前。
  2. 交換機基於widget的取向性

資源輸入法學習GTK

資源學習QT

從您的評論,似乎你會被改爲編寫自己的INPUTMETHOD機制或修改現有的。

爲了讓它在Gnome和KDE程序中默認加載並不難,只需根據語言環境關聯設置輸入法。困難的部分是讓InputMethod知道輸入的位置。通常情況下,INPUTMETHOD不知道調用應用程序,更不用說GUI框架,它是寫在。在輸入法

資源

+0

感謝您的指示。看來我有很多東西要學,但應該很有趣。我的想法不僅僅是爲了在我的程序中實現這一點,而且還是以某種方式「掛鉤」到系統中的所有文本字段中,或者至少大部分文本字段中。我想第一步就是學習GTK。 – 2012-03-12 21:26:45

相關問題