2014-07-17 71 views
0

我想在QT中添加一個Unicode符號作爲列表控件項目。 (尤其是這個項目:http://www.fileformat.info/info/unicode/char/25B6/index.htm如何在Linux上使用QT正確顯示unicode符號?

我用下面的方法了這一點:

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

但是當我打開窗口小部件我只看到就位這個unicode符號的空白矩形。我甚至嘗試過其他的Unicode符號,但它們也只顯示空白的矩形。

這種方法有什麼問題?

編輯:在下面的答案後,我將QListWidgetItem的字體更改爲Serif,它的工作。

+0

你的代碼行不應該說'QString :: fromUtf8(「\ u25B6」)'? – Hurzelchen

+0

@Hurzelchen對,對不起。但是它仍然無法顯示任何unicode符號,所以它沒關係:| – Maverick33

回答

1

有幾種可能性,但最有可能的是您使用的字體根本不實現字形。你能看到例如三角形嗎?一個編輯器使用相同的字體作爲你的Qt字體?

編輯:字體(存儲在系統的字體文件中)是在屏幕上繪製每個字符圖像的命令)。許多(如果不是全部的話)字體是不完整的,這意味着它們不能代表unicode中可能的所有2,000,000,000+個代碼(代表字符的數字)。這些文件只是大到可行。

要打印的三角形是相當基本的,並且應該在許多字體集中可用。我剛剛檢查了兩個解放Sans和解放Serif。

我懷疑Qt使用系統的字體集,它可能在系統設置的某個地方更改。如果您告訴我們您使用的是哪種發行版(即Ubuntu,Debian,...),也許我們可以提供幫助。

+0

我並不完全遵循字體的含義。我打印把這個字符串放在終端上,它正在打印'?'代替unicode字符。 如何查看字體是否對此負責? – Maverick33

+0

您是否嘗試過更改終端的字體? – MrEricSir

+0

@MrEricSir不,我還沒有嘗試過,實際上我不知道如何改變它。基本上我不知道如何改變字體會改變一些東西:(無論如何,即使它工作(即改變終端字體),它會幫助調試實際問題嗎?我必須更改QT/C++代碼中的某些字體在小部件上顯示符號? – Maverick33

相關問題