【问题标题】:Qt: display dynamically composed non-English text on Labels or buttonsQt:在标签或按钮上显示动态组合的非英文文本
【发布时间】:2013-04-13 15:19:16
【问题描述】:

我正在尝试在 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));

但它没有帮助。

有人可以帮我解决这个问题吗? 非常感谢您的宝贵时间。

【问题讨论】:

    标签: qt translation hindi qpushbutton


    【解决方案1】:

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

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

    【讨论】:

    • 感谢 Roku。添加一个空字符串使其即使在 Qt 4.7.4 和 4.8.4 中也能正常工作。如果有人可以解释这是如何解决问题的,那就太好了。这是一个错误吗?
    猜你喜欢
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    相关资源
    最近更新 更多