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

How to properly display unicode symbols on Linux using QT?

本文关键字:显示 unicode 符号 何使用 QT Linux      更新时间:2023-10-16

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

我使用以下方法:

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

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

这个方法有什么问题?

编辑:在遵循答案之后,我将QListWidgetItem的字体更改为Serif,它工作了

有几种可能,但最可能的一种是您使用的字体根本没有实现字形。你能看到这个三角形吗?编辑器时使用相同的字体作为您的Qt字体?

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

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

我怀疑Qt使用系统的字体集,这可能可以在系统设置的某个地方改变。如果你告诉我们你使用的是哪个发行版(比如Ubuntu, Debian,…),也许我们能帮上忙。