# 【Qt編程】基于Qt的詞典開發系列--國際音標的顯示
在年前的一篇文章中,我提到要學習Qt.于是在這學期看了一個月的qt。現在大致對qt有了一些了解。但是現在導師又把我調到了android應用開發平臺,所以說qt的學習要擱置了。本打算這學期做一個單詞查詢軟件的,目測只有在暑假完成了,現在才剛剛完成了本地詞庫的查詢。目前的工作解決了詞庫的來源、本地詞典的查詢功能。日后的工作還有訪問網絡詞庫、記單詞的算法實現等等。下面來說一說我在本地查詞功能實現的問題—顯示音標!
我們知道,qt中講的比較多的是如何顯示中文。一般情況都可以用下面代碼來解決:
~~~
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));??
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());??
~~~
但是,我們**本文解決的是顯示國際音標**。因為當我們從詞庫中搜索到我們查的單詞時,便會顯示其音標和意思。但是有一些音標卻無法顯示,舉例如下:


**對比兩張圖就可以看出有一些音標無法顯示。**
**由于Qt可以解析html語言,因此我們可以通過在html語言中設置字體來顯示這些特殊的音標**。**一些常用的音標有:**
θ??e?????t??d?????????????????? ?ɑ: ??: ?? ?e??ɑ????????o??ɑ? ????e???????
**我們可以通過下面程序來測試:**
` QString?str2="?θ??e????????t???d?????????????????????????ɑ:??:???e???ɑ???????????o???ɑ??????e?????????";??`
然后將上面的字符串放入Qlabel等部件進行顯示,在這里就不給出具體程序了。**測試結果如下:**

經過測試如上圖,上述特殊音標都可以正常顯示。學習過html語言的可以看出上面的字符串是html語言,并且將字體設置為Time New Roman。
舉一反三,如果要顯示其它特殊字符,只需找出其所在的字體。當然,如果你學過html,你可以在上面的語句中包含多個字體(有備無患)。
- 前言
- <一>--詞典框架設計及成品展示
- <二>--本地詞典的設計
- <三>--開始菜單的設計
- <四>--無邊框窗口的縮放與拖動
- <五>--無邊框窗口的拖動
- <六>--界面美化設計
- <七>--調用網絡API
- <八>--用戶登錄及API調用的實現
- <九>--JSON數據解析
- <十>--國際音標的顯示
- <十一>系統托盤的顯示
- <十二>調用講述人
- <十三>音頻播放
- <十四>自動補全功能
- <十五>html特殊字符及正則表達式
- 后序