日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt国际化翻译(中英切换)步骤:可子界面翻译

發布時間:2023/12/29 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt国际化翻译(中英切换)步骤:可子界面翻译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

效果顯示:

1、英文翻譯:


2、中文翻譯:

步驟

1、用一個函數用來設置控件的文本信息,因為每次切換語言,就要重新設置控件的文本信息,所以我這里用了一個FunSetText()函數封裝(FunSetText()在代碼部分有顯示,這里只是演示如何用tr("")包裹文本),并且文本信息用tr(“”);如QPushButton p要設置文本

p->setText(tr("Info")); //用tr("")設置,這是重點,不這樣設置到時候翻譯的時候識別不出來

2、pro文件中添加 ,添加如下語句。這條語句是為了生成兩個.ts文件。

TRANSLATIONS = English.ts Chinese.ts

3、點擊Qt工程中的更新翻譯,如下圖所示,更新翻譯之后,在你的當前路徑下會有兩個.ts文件,如果沒有生成可以是pro文件中沒有添加TRANSLATIONS = English.ts Chinese.ts或者是在其他路徑:
生成兩個.ts文件:

4、打開QT語言家(如果你的電腦沒有裝語言家則沒有),找到自己編譯相對應的語言家版本,以管理員的方式打開,這樣更穩定。

5、英–中翻譯:如果你要翻譯的文本沒有用tr("")這樣是無法識別的。下圖是打開語言家后的界面。
5.1、選擇你剛剛生成的.ts文件進行翻譯。這里先選擇Chinese.ts(也可以一次性同時選擇兩個ts文件打開,這樣我們的翻譯的速度就快很多)

5.2、按照步驟設置翻譯的內容(這里提及一下,相同的翻譯內容設置一次就可以了,當你保存之后再次載入他就能識別)

5.3、當你設置完所有的翻譯之后,發布生成qm文件-點擊文件下的發布,發布之后會在.ts文件的路徑下生成.qm文件

6、英-英翻譯;其實相同的語言翻譯就把翻譯內容和要翻譯的問題內容一致即可。因為英-中的步驟我已經寫了,英-英的和中-中的翻譯一樣的步驟就可以,這里就不多加演示了。

7、最后我們就生成了兩個.qm文件了

代碼:

1、聲明一個QTranslator類的變量

QTranslator mTranslator;

2、FunSetText用來給控件設置文本信息,因為每次翻譯都需要更新控件文本的內容,所有用一個函數封裝起來更方便。

void MainWindow::FunSetText() { //注意:ui更新要在前面,不然內容會被清空,具體的可以去ui的.h文件中看看retranslateUi()//更新ui中控件的文本信息ui->retranslateUi(this); //更新代碼中的文本信息mpSystemMenu->setTitle(tr("System"));mpLanguage->setTitle(tr("Language"));mpSysEnableAction->setText(tr("System Enable"));mpSysCheckAction->setText(tr("System Check"));mpSysExitAction->setText(tr("Exit"));mpLanguageEnglish->setText(tr("English"));mpLanguageChinese->setText(tr("Chinese"));ui->pushButton->setText(tr("ChangeWidget")); }

3、語言改變事件

protected:void changeEvent(QEvent *event); void MainWindow::changeEvent(QEvent *event) {switch (event->type()){case QEvent::LanguageChange:FunSetText(); break;default:QWidget::changeEvent(event);} }

4、點擊了中英文翻譯

//點擊切換成英文connect(mpLanguageEnglish, &QAction::triggered,this,[=](){mTranslator.load(":/English.qm");//下面這條語句會觸發語言改變事件,調用FunSetText()函數qApp->installTranslator(&mTranslator); //再加載完翻譯文件之后更新文本信息});//點擊切換成中文connect(mpLanguageChinese, &QAction::triggered,this,[=](){mTranslator.load(":/Chinese.qm");qApp->installTranslator(&mTranslator);});

到此就ok了

注意事項:

1、每次新增或者刪除了要翻譯的內容,要翻譯的時候記得過更新翻譯;
2、翻譯的本質是重新設置文本,所以向QMessageBox這個點擊的時候生成的控件可以不需要提供更新接口,直接加tr()設置即可。

QMessageBox::warning(this,tr("Warning"),tr("Do you want Exit?"),tr("OK"),tr("Cancel"));

3、調用ui->retranslateUi(this)之后再調用FunSetText()重新設置文本,因為ui->retranslateUi(this)用給ui上拉的控件重新設置文本信息,可能會清空文本。
4、加載完翻譯文本之后再調用FunSetText()重新設置文本。等翻譯文件加載完之后再重新設置才能生效。
5、QT翻譯失效問題
6、翻譯的本質是,加載完翻譯文本之后,當遇到這個用tr()包裹的內容,會和qm中的內容進行一個查找,如果查找到了這個內容,就按照設置的翻譯內容翻譯,如果沒有就不翻譯。

程序網盤

為了方便大家使用,我共享在網盤上了,有想要的可以去拿。
第一次完成這么長的一篇文章,喜歡的小伙伴給個支持吧。
提取碼:wzds
網盤鏈接

總結

以上是生活随笔為你收集整理的Qt国际化翻译(中英切换)步骤:可子界面翻译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区三区欧美视频 | 人妻丝袜一区二区三区 | 久久8| 围产精品久久久久久久 | 在线看污片 | 人妻少妇精品一区二区三区 | 国产精品白嫩极品美女视频 | www.日日日 | 国产思思| 美女污软件 | 国产精品热久久 | 一区二区三区丝袜 | а√天堂www在线天堂小说 | 日本在线视频www色 国产在线视频网址 | 中文字幕av一区二区三区人妻少妇 | 西西午夜 | 国产精品久久久久久久久久小说 | 国产乱国产乱老熟300部视频 | 欧美乱淫视频 | 综合色亚洲 | 亚洲欧美自拍偷拍 | 日b免费视频 | 精品二区在线 | 国产免费毛卡片 | 久久精品性爱视频 | 在线观看麻豆视频 | 欧美国产日本在线 | 舐め犯し波多野结衣在线观看 | 色综合婷婷| 六月婷婷色 | 国产区免费观看 | 日本美女久久 | 日本在线网址 | 99精品在线免费视频 | 亚洲wwwwww| 蜜乳av一区二区 | 欧洲一区二区三区 | 国产一线二线三线女 | 精品久久久久久久久久久久久久久久久 | 依人在线视频 | 52av在线| 无码国产精品一区二区色情男同 | 亚洲av成人无码一区二区三区在线观看 | 日日骚影院 | 欧美精品在线播放 | 欧美高清一区二区 | 欧洲熟妇精品视频 | 久久加久久 | 亚洲在线中文字幕 | 日韩av专区 | 又黄又爽的视频在线观看 | 秋霞一区二区 | 国产成年人网站 | 97人妻精品一区二区三区视频 | 精品一区在线视频 | 欧美黄色大片免费观看 | avav亚洲 | 黄色三级视频网站 | 日本精品在线观看视频 | 日本人妻熟妇久久久久久 | 相亲对象是问题学生动漫免费观看 | 黄页嫩草| 视频在线观看你懂的 | 日韩一区在线视频 | 国内外免费激情视频 | 91九色中文 | 大地资源在线观看免费高清版粤语 | 黄色短视频在线观看 | 五月天在线播放 | 青娱乐在线免费视频 | 久久青青操 | www.久久久久久久久久 | 久久精品成人 | 日韩av在线免费观看 | 六月激情网 | 裸体视频软件 | 国产日 | 中文字幕在线观看免费高清 | 国产精品1页 | 国产麻豆精品一区 | 日韩网红少妇无码视频香港 | 国产粉嫩一区二区三区 | 欧美 日韩 中文字幕 | 首尔之春在线观看 | 亚洲专区一 | 一级国产片 | 亚洲AV综合色区国产精品天天 | 欧美一级少妇 | 国产女人叫床高潮大片免费 | 欧美乱大交xxxxx潮喷l头像 | 精品成人网 | 久久一本综合 | 黄色网址多少 | 亚洲精品久久久久久久久久久久久 | 精品无码国产av一区二区三区 | 老司机深夜视频 | 中文字幕免费观看 | 国产精品综合久久久 | 国内精品嫩模av私拍在线观看 |