• 4791阅读
  • 2回复

[提问]在QT3如何实现多语言动态切换 [复制链接]

上一主题 下一主题
离线anthonymo200
 
只看楼主 倒序阅读 楼主  发表于: 2011-04-18
基于Qt3下的UI编程, 在main.cpp中定义了
QApplication app;
QTranslator translator;
translator.load(QString("lang_") + QTextCodec::locale());
app.installTranslator(&translator);
在启动的时候更具系统环境变量的本地语种进行语言设置, 实现多语种是没有问题的,
但如果我们在程序运行的时候, 改变语种的话,不重起系统。 如何实现呢 ?

我看到一些代码
void MainWindow::ch_language()
{
    if(this->languageState)
    {
        this->languageState=CHINESE ;
        this->translator.load("test_ch") ;
        this->pOwner->installTranslator(&(this->translator));
    }
    else
    {
        this->languageState=ENGLISH ;
        this->translator.load("test_en") ;
        this->pOwner->installTranslator(&(this->translator));
    }
}
难道在每个窗体里面都需要定义个translator , qApp 吗 ? 对于QT3是否合适呢?
是否有一种方法可以在main.cpp中实现一个connect(), 在界面改变语种的时候,
在main.cpp中运行一次槽函数来改变加载的字体。  
离线anthonymo200
只看该作者 1楼 发表于: 2011-04-18
自己来顶帖子, 用qApp->installTranslator()就可以解决了, 原来qApp这个是窗体里面固定有的。  
离线anthonymo200
只看该作者 2楼 发表于: 2011-05-03
最近发现上一条回复是错的。
快速回复
限100 字节
 
上一个 下一个