公共化网站建设方案,北京建站报价,怎么给老板提供网站建设资料,网站图片轮播怎么做的一.目的
在做项目时#xff0c;有时希望我们的程序可以在不同的国家使用#xff0c;这样最好的方式是一套程序能适应于多国语言。
Qt提供了这样的功能#xff0c;使得一套程序可以呈现出不同的语言界面。本文将介绍QT如何实现多语言#xff0c;以中文和英文为例。
QT开发…一.目的
在做项目时有时希望我们的程序可以在不同的国家使用这样最好的方式是一套程序能适应于多国语言。
Qt提供了这样的功能使得一套程序可以呈现出不同的语言界面。本文将介绍QT如何实现多语言以中文和英文为例。
QT开发环境QT5.12 二.步骤
1.第一步 新建一个项目工程在pro文件中添加下面的语句
TRANSLATIONS \ language_en_AS.ts \ language_zh_AS.ts
这样最终可以生成适用于汉语和英语的ts文件。 2.第二步
然后点击工具-》外部-》语言家-》更新翻译lupdate。即使用lupdate工具生成pro文件中添加的ts文件。 生成这两个ts文件 3.点击电脑开始菜单在出现的应用程序列表栏找到Qt安装文件夹找到Linguist选择适合自己的Linguist工具双击打开 选择需要翻译的ts文件 确保都是绿色√ 均完成后“文件菜单”内选择保存发布会生成qm文件如下路径内 注意
如果本身就是中文目标也是中文翻译内的部分不用填写如下 4.在exe文件所在目录下新建文件夹translator并将生成的两个qm文件移入 二.代码实现
1.mainwindow.h #ifndef MAINWINDOW_H
#define MAINWINDOW_H #include QMainWindow
#include QTranslator QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE class MainWindow : public QMainWindow
{ Q_OBJECT public: MainWindow(QWidget *parent nullptr); ~MainWindow(); private slots: void on_pushButton_clicked(); void on_pushButton_2_clicked(); void on_pushButton_3_clicked(); private: Ui::MainWindow *ui; QTranslator m_tran;
};
#endif // MAINWINDOW_H 2.mainwindow.cpp #include mainwindow.h
#include ui_mainwindow.h
#include QTranslator #include QDebug MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow)
{ ui-setupUi(this); ui-textEdit-setText(tr(多语言切换功能));
} MainWindow::~MainWindow()
{ delete ui;
} void MainWindow::on_pushButton_clicked() //中文
{ QString strPath QCoreApplication::applicationDirPath(); //exe文件路径 bool bSuccess m_tran.load(strPath /translator/language_zh_AS.qm); if(bSuccess) { qApp-installTranslator(m_tran); ui-retranslateUi(this); } else { qDebug()tr(读取qm文件失败); }
} void MainWindow::on_pushButton_2_clicked() //英文
{ QString strPath QCoreApplication::applicationDirPath(); //exe文件路径 bool bSuccess m_tran.load(strPath /translator/language_en_AS.qm); if(bSuccess) { qApp-installTranslator(m_tran); ui-retranslateUi(this); } else { qDebug()tr(读取qm文件失败); }
} void MainWindow::on_pushButton_3_clicked()
{ ui-textEdit-setText(tr(多语言切换功能)); //这个需要翻译部分必须用tr()函数
} 说明
当你使用tr()函数时Qt会在运行时检查当前的语言环境设置并查找相应的翻译。如果没有找到翻译或者当前语言环境与翻译文件不匹配tr()函数将返回原始字符串。 3.实验结果
1初始页面 2点击“英文”按钮 3点击“测试”按钮 注意
ui-textEdit-setText(tr(多语言切换功能)); //需要修改语言环境后执行这样就会和语言环境一样了 //但不会像button的名字那样按中英文按钮时自动变化 参考文章
https://blog.csdn.net/weixin_42426713/article/details/132107762
https://blog.csdn.net/sdft06/article/details/130204659
https://blog.csdn.net/blqzj214817/article/details/127396411