2013-04-20 48 views
0

我想在QPushbutton上顯示一些動態生成的印地文字。Qt:在標籤或按鈕上顯示動態組成的非英文文本

請看看下面的代碼:

char nam[] = { 40, 9, 62, 9, 46, 9 }; 
QString nameStringInHindi(QString::fromRawData((QChar *)nam, 3)); 
qDebug() << nameStringInHindi; 

輸出: 「नाम」

但如果我這樣做 用戶界面 - > pushButton->的setText(nameStringInHindi)//一些垃圾字符正在印刷。

我也嘗試設置應用程序字體。

QFontDatabase::addApplicationFont("/usr/share/fonts/lohit-devanagari/Lohit-Devanagari.ttf") 

和 的QApplication :: setfont程序(QFont( 「嘉黎梵文」,12));

但它沒有幫助。

有人可以幫我解決這個問題嗎? 非常感謝你的時間。

回答

0

我不知道爲什麼你的代碼不起作用,但是向原始數據創建的字符串添加一個空字符串會以某種方式修復該字符串。這在Qt 5.0.1的Linux下有效:

QString nameStringInHindi(QString::fromRawData((QChar*)nam, 3) + ""); 
+0

感謝Roku。添加一個空字符串使其即使在Qt 4.7.4和4.8.4中也能正常工作。如果有人能解釋如何解決這個問題,那將是非常好的。這是一個錯誤嗎? – jestin 2013-04-21 08:43:34