天天看點

【Qt程式設計】基于Qt的詞典開發系列<十四>自動補全功能

    最近寫了一個查單詞的類似有道詞典的軟體,裡面就有一個自動補全功能(即當你輸入一個字母時,就會出現幾個候選項)。這個自動補全功能十分常見,百度搜尋關鍵詞時就會出現。不過它們這些補全功能都是與你輸入的進行首字比對,有時也會不友善。例如,如果我輸入一個“好”,如果是首字比對的話會出現下圖:

【Qt程式設計】基于Qt的詞典開發系列<十四>自動補全功能

如果是句中比對的話,則是這種情況:

【Qt程式設計】基于Qt的詞典開發系列<十四>自動補全功能

你可以根據自己的要求進行選擇哪一種模式。

    Qt中自帶QCompleter類來實作上面的自動補全功能,讀者可以在Qt自帶的demo中很容易的學會該類的使用。下面我要講的是自己構造一個比QCompleter更強大的類。有人會說,為什麼有現成的不用,要自己寫一個類呢?因為,我用QCompleter類的時候發現,它隻有句首比對模式(可能是我沒仔細看文檔,不知道可以改變模式),其次,當我的詞庫非常大的時候,有的時候就不會出現下拉自動補全清單,具體原因也不清楚。是以自己寫了一個類,來實作QCompleter類所沒有功能。廢話不多說,直接見代碼(代碼注解比較詳細,就不仔細講解了,widget.ui檔案也不給出了,就是一個空的界面):

1、widget.h

2.completelineedit.h

3.widget.cpp

4.completelineedit.cpp

5.main.cpp

最後放兩張查單詞軟體用到的自動補全功能的截圖:

【Qt程式設計】基于Qt的詞典開發系列<十四>自動補全功能
【Qt程式設計】基于Qt的詞典開發系列<十四>自動補全功能

基于Qt的詞典開發系列

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/44757875">詞典架構設計及成品展示</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45014771">本地詞典的設計</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45099867">開始菜單的設計</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38758051">無邊框視窗的縮放與拖動</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38817595">無邊框視窗的拖動</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45223931">界面美化設計</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45484803">調用網絡API</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45932429">使用者登入及API調用的實作</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45932429">JSON資料解析</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/23294533">國際音标的顯示</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38237203">系統托盤的顯示</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38306803">調用講述人</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38555787">音頻播放</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38689745">自動補全功能</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38734201">HTML特殊字元及正規表達式</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/46563781">後序</a>

作品下載下傳位址(綠色版):http://download.csdn.net/detail/tengweitw/8830495

源碼下載下傳位址:http://download.csdn.net/detail/tengweitw/8830503

作者:nineheadedbird