如何使用QT在Linux上正确显示unicode符号?

时间:2014-07-17 15:46:14

标签: c++ qt unicode qstring

我想在QT中添加Unicode符号作为列表小部件项。 (特别是这个项目:http://www.fileformat.info/info/unicode/char/25B6/index.htm

我使用以下方法:

this->addItem( new QListWidgetItem(  QString::fromUtf8("\u25B6")) ) ; 

但是当我打开小部件时,我看到只有一个空白矩形代替这个unicode符号。我甚至尝试过其他的unicode符号,但它们也只显示空白矩形。

这种方法有什么问题?

编辑:在听完答案之后,我将QListWidgetItem的字体改为Serif并且它有效。

1 个答案:

答案 0 :(得分:1)

有几种可能性,但最可能的是你正在使用的字体根本没有实现字形。你能看到三角形吗?使用与Qt字体相同的字体时的编辑器?

编辑:字体(存储在系统的字体文件中)是在屏幕上绘制每个字符图像的命令。许多(如果不是全部)字体都是不完整的,这意味着它们无法代表unicode中可能存在的所有2,000,000,000个代码(代表字符的数字)。文件只是大到实用。

您想要打印的三角形是相当基本的,并且应该有许多字体集。解放Sans和Liberation Serif是我刚检查过的两个。

我怀疑Qt使用的是系统的字体集,可能会在某处的系统设置中进行更改。如果你告诉我们你正在使用哪个发行版(即Ubuntu,Debian,......),也许我们可以提供帮助。