1

当我changeEvent(QEvent* event)使用接收类型 event->type() == QEvent::LanguageChange时,如何获取有关我的应用程序中的新语言的信息?

4

2 回答 2

1

您可以将翻译后的字符串与其已知翻译进行比较:

void changeEvent(QEvent *event)
{
    if (event->type() == QEvent::LanguageChange) {
        QString translated = QCoreApplication::translate("some context", "Button");
        if (translated == "Button")
            // language is English
        else if (translated == "Кнопка")
            // language is Russian
        ...
    }
}
于 2015-04-02T09:52:54.637 回答
0

Qt 没有任何对象来表示应用程序语言。所以你应该自己实现它。

通常changeEvent(QEvent* event)与类型有关QEvent::LanguageChangeinstallTranslator(QTranslator*)因此您应该知道加载到翻译器并将其存储在本地的女巫语言。

于 2015-04-02T12:57:09.293 回答