<十>–国际音标的显示
最后更新于:2022-04-01 07:11:30
# 【Qt编程】基于Qt的词典开发系列--国际音标的显示
在年前的一篇文章中,我提到要学习Qt.于是在这学期看了一个月的qt。现在大致对qt有了一些了解。但是现在导师又把我调到了android应用开发平台,所以说qt的学习要搁置了。本打算这学期做一个单词查询软件的,目测只有在暑假完成了,现在才刚刚完成了本地词库的查询。目前的工作解决了词库的来源、本地词典的查询功能。日后的工作还有访问网络词库、记单词的算法实现等等。下面来说一说我在本地查词功能实现的问题—显示音标!
我们知道,qt中讲的比较多的是如何显示中文。一般情况都可以用下面代码来解决:
~~~
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
~~~
但是,我们**本文解决的是显示国际音标**。因为当我们从词库中搜索到我们查的单词时,便会显示其音标和意思。但是有一些音标却无法显示,举例如下:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-15_5698c1c8b916e.jpg)
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-15_5698c1c8c81b4.jpg)
**对比两张图就可以看出有一些音标无法显示。**
**由于Qt可以解析html语言,因此我们可以通过在html语言中设置字体来显示这些特殊的音标**。**一些常用的音标有:**
θ ð ʃ ʒ tʃ dʒ ŋ ɪ æ ɔ ʌ ʊ ə ɛ ɑ: ʊ: ɔ eɪ ɑɪ ɔɪ əʊ oʊ ɑʊ ɪə eə ʊə ɪə
**我们可以通过下面程序来测试:**
` QString str2=" θ ð ʃ ʒ tʃ dʒ ŋ ɪ æ ɔ ʌ ʊ ə ɛ ɑ: ʊ: ɔ eɪ ɑɪ ɔɪ əʊ oʊ ɑʊ ɪə eə ʊə ɪə"; `
然后将上面的字符串放入Qlabel等部件进行显示,在这里就不给出具体程序了。**测试结果如下:**
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-15_5698c1c8d9d93.jpg)
经过测试如上图,上述特殊音标都可以正常显示。学习过html语言的可以看出上面的字符串是html语言,并且将字体设置为Time New Roman。
举一反三,如果要显示其它特殊字符,只需找出其所在的字体。当然,如果你学过html,你可以在上面的语句中包含多个字体(有备无患)。