基于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中运行一次槽函数来改变加载的字体。