2010-02-03 24 views
1

以下功能需要實現我們現有的QT & C++應用程序。 我們必須將用戶鍵入的縮寫擴展爲預定義的單詞。我們需要實現的功能與文本擴展器類似。如果用戶輸入「FL」,則需要立即將其替換爲「佛羅里達」。如何修改QT中的鍵盤輸入?

我能夠找到捕獲關鍵事件的QT文檔,但我不知道如何使用預定義的字符集來修改鍵盤輸入。

如果你們提供了一些示例代碼和方向,這將是非常好的。

在此先感謝!

回答

0

這個例子對你有用嗎?

他們使用一種稱爲完成者mecanism,對於給定的條目提供不同的話......這是很喜歡在手機上一個dictionnary ...

定製完成者舉例:

http://qt.nokia.com/doc/4.6/tools-customcompleter.html

希望它有一點幫助!

+0

感謝Andy的鏈接。我只想用用戶鍵入的縮寫完全替換預定義的單詞。我不需要下拉列表和所有。假設我可以使用一個特殊的鍵來告訴我的應用程序它是一個縮寫,並且在任何匹配的情況下查找預定義的單詞。 例如,如果用戶按下「fl」和空格鍵,應用程序需要用「fl」替換預定義的單詞。 – Thi 2010-02-03 20:24:42

+0

嘿再次,是的,但知道你可以匹配「FL」和「佛羅里達」,你可以改變這個例子的行爲來對空格條做出反應,並立即添加這個詞... – 2010-02-03 21:25:26

+0

嘿,你有沒有找到解決方案你的問題?你怎麼做的 ? – 2010-02-10 15:11:50

1

爲什麼你需要修改「鍵盤輸入」?讓用戶輸入,並在每個字符後檢查與您的縮寫詞DB匹配。一旦你點擊了某些東西,刪除用戶鍵入的縮寫,並用擴展名替換它。

鑑於用戶輸入某種行編輯或文本框,這些操作非常簡單,甚至不需要對事件進行操作,而只需輸入新字符時由這些小部件發送的信號。

+0

我的意思是說,將用戶輸入的字符替換爲預定義的單詞。實際上,這不是文本框,它的代碼編輯器就像IDE一樣。 – Thi 2010-02-03 19:43:06

+0

所以你不想顯示用戶輸入的內容?我認爲你應該 - 否則如果他沒有輸入其中一個縮寫,你會顯示什麼?在任何情況下,爲了隱藏他的打字,你可以抓住關鍵事件,而不是傳遞它,然後做任何你與數據 – 2010-02-03 19:58:39

+0

不會有任何關於縮寫數量的規則,他們可以定義任何預定義的文本與縮寫標籤。這取決於用戶的決定,要麼他們可以使用縮寫標籤來擴展,或者他們可以簡單地鍵入它。 QT有可能嗎? – Thi 2010-02-03 20:09:28