Qt LanguageChange 事件 - 找出新的语言

Posted

技术标签:

【中文标题】Qt LanguageChange 事件 - 找出新的语言【英文标题】:Qt LanguageChange event - find out new language 【发布时间】:2015-04-02 09:00:47 【问题描述】:

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

【问题讨论】:

【参考方案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
        ...
    

【讨论】:

听起来像是解决方法.. 并且在我不知道我可以拥有多少种语言的情况下不起作用【参考方案2】:

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

通常changeEvent(QEvent* event) 类型为QEvent::LanguageChange 是由installTranslator(QTranslator*) 引起的,所以你应该知道你加载到翻译器并存储在本地的女巫语言。

【讨论】:

以上是关于Qt LanguageChange 事件 - 找出新的语言的主要内容,如果未能解决你的问题,请参考以下文章

qt中找出某个路径下面的某类文件的所有文件

Qt教程 : 用Log4Qt自定义日志系统

QT学习_QT常用事件

Qt--Qt中的事件处理

QT开发——QT事件处理机制

QT事件循环