0

我正在尝试在 QPushbutton 上显示一些动态生成的印地语文本。

请看下面的代码:

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

输出:“नाम”

但是如果我执行 ui->pushButton->setText(nameStringInHindi) //一些垃圾字符会被打印出来。

我也尝试过设置应用程序字体。

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

和 QApplication::setFont(QFont("Lohit Devanagari",12));

但它没有帮助。

有人可以帮我解决这个问题吗?非常感谢您的参与。

4

1 回答 1

0

我不知道为什么您的代码不起作用,但是向从原始数据创建的字符串添加一个空字符串以某种方式修复了该字符串。这适用于带有 Qt 5.0.1 的 Linux:

QString nameStringInHindi(QString::fromRawData((QChar*)nam, 3) + "");
于 2013-04-20T10:26:12.513 回答