成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Qt 動(dòng)態(tài)切換語(yǔ)言 附源碼

移動(dòng)開(kāi)發(fā)
Qt的國(guó)際化設(shè)計(jì)提供了這種可能。要實(shí)現(xiàn)這種動(dòng)態(tài)切換,只需要在程序里使用一點(diǎn)小小的技巧,就不是把調(diào)用了Qt翻譯語(yǔ)句tr的代碼集中在某個(gè)和窗體變化無(wú)關(guān)的函數(shù)里,

本文講解的是Qt 動(dòng)態(tài)切換語(yǔ)言,在編寫(xiě)國(guó)際化程序的時(shí)候,在很多情況下都是在系統(tǒng)啟動(dòng)的過(guò)程中選擇語(yǔ)言,然后加載對(duì)應(yīng)的地方語(yǔ)言翻譯文件,實(shí)現(xiàn)語(yǔ)言的本地化。

但是也會(huì)有用戶(hù)需要進(jìn)行動(dòng)態(tài)的語(yǔ)言切換(Dynamic Language Switching),也就是在程序主>體都運(yùn)行起來(lái)后,需要改變語(yǔ)言的選項(xiàng)。而用戶(hù)不希望因?yàn)?strong>語(yǔ)言切換而引起程序的重啟或者窗口的關(guān)閉。

Qt的國(guó)際化設(shè)計(jì)提供了這種可能。要實(shí)現(xiàn)這種動(dòng)態(tài)切換,只需要在程序里使用一點(diǎn)小小的技巧,就不是把調(diào)用了Qt翻譯語(yǔ)句tr的代碼集中在某個(gè)和窗體變化無(wú)關(guān)的函數(shù)里,比如retranslateStrings()這樣的函數(shù)里。在改變語(yǔ)言的時(shí)候,調(diào)用這個(gè)函數(shù)就可以了。

下面是附帶的一個(gè)演示程序,僅為證明功能使用。沒(méi)有過(guò)多考慮代碼的嚴(yán)密性。

  1. //dialog.cpp  
  2.  
  3. #include   
  4. #include "dialog.h"  
  5. Dialog::Dialog(QWidget *parent)  
  6. : QDialog(parent)  
  7. {  
  8.     label=new QLabel(this);  
  9.     okButton=new QPushButton(this);  
  10.     connect(okButton,SIGNAL(clicked()),this,SLOT(switchlang()));  
  11.     flag=0;  
  12.     retranslateStrings();  
  13.  
  14.     QVBoxLayout *mainLayout = new QVBoxLayout;  
  15.     mainLayout->addWidget(label);  
  16.     mainLayout->addWidget(okButton);  
  17.     setLayout(mainLayout);  
  18. }  
  19.  
  20. void Dialog::retranslateStrings()  
  21. {  
  22.     label->setText(tr("Name:"));  
  23.     okButton->setText(tr("Switch Language"));  
  24.     setWindowTitle(tr("Switch Language ..."));  
  25. }  
  26.  
  27. void Dialog::switchlang()  
  28. {  
  29.     QTranslator translator;  
  30.     if(0==flag){  
  31.         translator.load("switchlang_zh");  
  32.         flag=1;  
  33.     }else  
  34.     {  
  35.         flag=0;  
  36.     }  
  37.     qApp->installTranslator(&translator);  
  38.     retranslateStrings();  
  39. }  
  40. //dialog.h  
  41. #ifndef DIALOG_H  
  42. #define DIALOG_H  
  43. #include   
  44. class QLabel;  
  45. class QPushButton;  
  46.  
  47. //! [0]  
  48. class Dialog : public QDialog  
  49. {  
  50. Q_OBJECT  
  51. public:  
  52.     Dialog(QWidget *parent = 0);  
  53. private:  
  54.     QLabel *label;  
  55.     QPushButton *okButton;  
  56.     int flag;  
  57. private slots:  
  58.     void retranslateStrings();  
  59.     void switchlang();  
  60. };  
  61. //! [0]  
  62. #endif  
  63. //main.cpp  
  64. #include   
  65. #include "dialog.h"  
  66. int main(int argc, char *argv[])  
  67. {  
  68.     QApplication app(argc, argv);  
  69.     Dialog dialog;  
  70.     dialog.show();  
  71.     return app.exec();  
  72. }  
  73. //switchlang.pro  
  74. TEMPLATE = app 
  75. TARGET =  
  76. DEPENDPATH += .  
  77. INCLUDEPATH += .  
  78. # Input  
  79. HEADERS += dialog.h  
  80. SOURCES += dialog.cpp main.cpp  
  81. TRANSLATIONS+=switchlang_zh.ts 

小結(jié):

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-30 13:37:29

MFC Qt 多國(guó)語(yǔ)

2011-06-21 09:19:24

Qt 界面 多國(guó)語(yǔ)言

2013-04-03 11:12:57

Java幻燈片切換

2011-07-20 10:50:19

蘋(píng)果 OpenCL 多線程

2011-06-23 11:16:39

Qt Excel

2011-06-23 14:27:48

QT QLibrary 動(dòng)態(tài)庫(kù)

2011-03-03 15:32:51

Qt-Quick

2010-03-23 09:16:43

Python源碼剖析

2011-06-23 15:32:05

Qt Windows消息

2011-06-23 15:10:39

Qt 窗體

2011-06-23 14:05:32

Qt 事件機(jī)制

2011-06-28 16:18:24

Qt QObject

2011-07-20 11:09:58

蘋(píng)果 OpenCL 變量

2011-06-27 16:59:19

Qt 動(dòng)態(tài) 插件

2011-06-15 17:08:31

Qt Symbian 切換

2025-02-26 10:40:40

2011-06-09 11:11:35

QT 靜態(tài)庫(kù) 動(dòng)態(tài)庫(kù)

2011-06-24 09:01:20

Qt QLibrary dll

2011-01-06 09:00:01

靜態(tài)語(yǔ)言動(dòng)態(tài)語(yǔ)言

2011-06-23 14:40:13

Qt 信號(hào)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 狠狠操狠狠色 | 成人在线电影在线观看 | 中文字幕日韩欧美一区二区三区 | 国产成人高清视频 | 国产综合视频 | 毛片视频网站 | 免费黄色录像片 | 欧美成人第一页 | 视频在线亚洲 | 欧美日韩福利视频 | 亚洲欧美在线免费观看 | av在线免费观看不卡 | 99精彩视频 | 91综合在线视频 | 亚洲精品乱码久久久久久按摩 | 美女啪啪国产 | 成人在线免费视频观看 | 亚洲精品国产成人 | 涩色视频在线观看 | 九九色综合 | 性做久久久久久免费观看欧美 | 亚洲精品一区二区冲田杏梨 | 91精品国产色综合久久 | 国产高清在线精品 | 97精品国产97久久久久久免费 | 久久精品这里精品 | 久久精品一区 | h在线观看| 日韩三级免费网站 | 亚洲国产精品久久久久婷婷老年 | 龙珠z国语版在线观看 | 久久在线免费 | 一区二区三区精品视频 | 中文字幕精品一区二区三区精品 | 欧美一级片在线看 | 国产精品久久一区二区三区 | 国产在线精品一区二区 | 在线视频三区 | 羞羞视频在线网站观看 | 亚洲精品资源 | 国产欧美一区二区三区在线播放 |