构造函数:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
connect(ui.languageBtn, SIGNAL(clicked()), this, SLOT(ClickedLanguage()));//中英文切换
//connect(ui.picinputbtn, SIGNAL(clicked()), this, SLOT(PicinputClicked()));//图像输入
//connect(ui.prebtn, SIGNAL(clicked()), this, SLOT(PrebtnClicked()));//图像预处理
}
中英文字典:(若原本项目用的是英文,则添加个英文字典,把里面涉及到的英文翻译成中文;若用的是中文,则反之)
以本项目为例:(本项目本身是用英文写的,所以应添加英文字典)
第一步:项目中所以涉及显示的英文都改成tr("…")这种格式。
第二步:添加英文字典
点击工具栏的"Qt VS Tools" -> Create New Translation File -> 选择英语 -> 确定 -> 即可得到翻译字典:pro4_en.ts
第三步:更新pro4_en.ts
右击pro4_en.ts -> 点击lupdata
第四步:配置中文
双击进入pro4_en.ts -> 对应每个填写译文:在Translation to American English(United States)中填写对应的中文-> 点击工具栏的绿色钩钩 -> 点击工具栏中的“文件” -> 选择“另外发布为” (工程路径) -> 保存
只有项目中新添加显示的英文的话,都要重新更新字典:执行第三和第四步
void MainWindow::ClickedLanguage()
{
static bool LanguegeFlag = 0;
if (LanguegeFlag)
{
//本工程为例:此处显示英文
qApp->removeTranslator(translator);
delete translator;
translator = NULL;
}
else
{
//此处显示中文
translator = new QTranslator(0);
translator->load("pro4_en.qm", ".");
auto binstall = qApp->installTranslator(translator);
}
LanguegeFlag = !LanguegeFlag;
ui.retranslateUi(this);//重新翻译刷新界面
}