怎樣創(chuàng)造網(wǎng)站友情鏈接檢測(cè)
http://t.csdn.cn/BVigB
傳統(tǒng)數(shù)組法:
定義一個(gè)字符串二維數(shù)組,
QString weekStr[2][7] = {"星期一","星期二","星期三","星期四","星期五","星期六","星期日",\
"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
void MainWindow::on_comboBox_currentIndexChanged(int index)
{static int lastindex = 0;if(index == lastindex)return;lastindex = index;QList<QLabel *> lbs = this->findChildren<QLabel *>();int i_cnt = 0;foreach (QLabel *lb, lbs) {lb->setText(tr("%1").arg(weekStr[index][i_cnt++]));}for(int i = 0;i<2;i++){ui->comboBox->setItemText(i,language[index][i]);}
}
接下來就可以看到效果
但是這只是在你字體少的情況,如果你字體很多,你就可以使用qt自帶的語言家
具體操作如下:
對(duì)用戶可見的文本信息全部使用tr()進(jìn)行封裝。至于為什么一定要用tr可以看
https://blog.csdn.net/liang890319/article/details/7041786???????
在pro中添加:
TRANSLATIONS += ts_zh.ts ?ts_en.ts
此時(shí)你只需要在界面ui寫好控件名
然后選擇:工具->外部->Qt語言家->更新翻譯,則會(huì)生成對(duì)應(yīng)的ts文件。
翻譯:使用Qt Linguist打開要翻譯的ts文件,對(duì)翻譯源進(jìn)行相應(yīng)語言的翻譯。
?
?
將這些英文翻譯輸入后,點(diǎn)擊問號(hào)
然后保存->發(fā)布即可
在qt的語言家剛才更新翻譯,現(xiàn)在選發(fā)布翻譯
此時(shí)你肯定已經(jīng)有了兩個(gè)qm文件,將其添加到資源文件
在combox里添加:
void MainWindow::on_comboBox_currentIndexChanged(int index)
{static int lastIndex = 0;if(index == lastIndex)return;lastIndex = index;static QTranslator* translator;if (translator != NULL){qApp->removeTranslator(translator);delete translator;translator = NULL;}translator = new QTranslator;if(index==0){if(translator->load(":/tr_zh.qm")){qApp->installTranslator(translator);}}else{if(translator->load(":/tr_en.qm")){qApp->installTranslator(translator);}}ui->label->setText(tr("星期一"));ui->label_2->setText(tr("星期二"));ui->label_3->setText(tr("星期三"));ui->label_4->setText(tr("星期四"));ui->label_5->setText(tr("星期五"));ui->label_6->setText(tr("星期六"));ui->label_7->setText(tr("星期日"));ui->comboBox->setItemText(0,tr("中文"));ui->comboBox->setItemText(1,tr("英文"));
}
切記,更新了翻譯一定要重新settext或者刷新ui,不然不會(huì)生效
此生成的文件就可以中英文動(dòng)態(tài)切換顯示
我這里是因?yàn)橛胏ombox必須settext,如果你們不是combox是radiobutton就更方便了,直接刷新ui
代碼更是簡(jiǎn)單:
如果不需要?jiǎng)討B(tài)切換,那么你只需要
就只在初始的時(shí)候生效了
?