关于Qt 程序界面中英文切换总结
Qt通过lupdate.exe和linguist.exe实现程序中英文切换
一种基于QtCreater直接使用Qt预言家(注意电脑有权限,可能翻译失败),另外一种用shell脚本方式,调用exe。
第一种方式:
- 在工程文件.pro添加 TRANSLATIONS = english_EN.ts ,其中english_EN.ts是自己取名;
- 用linguist.exe打开文件 english_EN.ts,进行翻译 ,翻译完成后,选择发布文件“english_EN.qm”;
- 在工程中添加一下代码:
QTranslator translator;
if ( translator.load(“C:\Users\KC\Desktop\fileSel\fileSel\english_EN.qm”))
{
qApp->installTranslator(&translator);
ui->retranslateUi(this);
}
完成界面英文翻译
第二种方式:- 在工程文件.pro添加 TRANSLATIONS = english_EN.ts ,其中english_EN.ts是自己取名;
- 打开cmd ,进入dos窗口,进入“lupdate.exe”文件夹,输入一下指令:
lupdate C:\Users\KC\Desktop\fileSel\fileSel\fileSel.pro
- 用linguist.exe打开文件 english_EN.ts,进行翻译 ,翻译完成后,选择发布文 件“english_EN.qm”;
- 在工程中添加一下代码:
QTranslator translator;
if ( translator.load(“C:\Users\KC\Desktop\fileSel\fileSel\english_EN.qm”))
{
qApp->installTranslator(&translator);
ui->retranslateUi(this);
}
完成界面英文翻译
注意事项:
QFileDialog 界面翻译为英文:
setLabelText()函数可以设置QFileDialog界面为英文,但是“取消”按钮不能够翻译,没有找到原因。
解决的方法为:
QFileDialog fDlg(this);
Dlg.setOption(QFileDialog::DontUseNativeDialog);
fDlg.setAcceptMode(QFileDialog::AcceptSave);
fDlg.exec();
QStringList str = fDlg.selectedFiles();
if( str.size() )
{
int icount = str.size();
}
实现文件对话框的英文界面,主要因为
Dlg.setOption(QFileDialog::DontUseNativeDialog);
带尺寸的图片:
居中的图片: