使用者那給的協議是和qt相關的,並沒有輸出裸資料,而是用qt序列化之後輸出的。
如果要訪問他們的socket server, 得到資料後,要處理成裸資料才能用.
為了解決能用他們提供的協議資料,有下面2個方法:
我採用第一種方法來弄,最簡單直接。
我要作的這個小client, 需要國際化。
因為我對qt不熟,客戶將他們的qt版demo工程給了乙個作參考。而且給了開發環境qt4.7.0的安裝包。
我發現,他們的軟體支援中英文,但是都是在程式中寫死的。硬編碼,維護肯定不方便啊
於是就想先看看國際化怎麼作合適。
看到了參考資料:
但是資料版本的qt明顯比4.7.0高,並沒有找到他說的選單來轉語言檔案。
但是lupdate.exe在qt安裝目錄中有。我用命令列轉語言檔案好使。
又找到個資料,這個使用命令列來幹活的
因為用lupdate來生成語言檔案,是要求工程中的編碼頁為utf8
然後重啟qt,使編碼頁生效
看了一眼工程,字串已經都用tr包裹了。
// e.g.
ui->my_tip->settext(tr("prev"));//上乙個
新增qt控制項後,預設就有可翻譯的屬性。
將qt的bin目錄加入path. 我這預設安裝完qt4.7.0,qt工具的路徑是 c:\qt\2010.05\qt\bin
設定好環境變數後,新開乙個cmd.
cd /d d:\ls\dev_tmp\test_qt
lupdate test_qt.pro
這時,可以看到工程目錄下生成了中英文的語言檔案,還挺大的。
開啟ts檔案,看看qt生成的語言檔案是啥樣子的:)
<?xml version="1.0" encoding="utf-8"?>
dlg_a
對話方塊a
狀態a上乙個
可以看出, qt是對.ui檔案的控制項定義行數那,指定了可替換的文字。
而且控制項和父視窗都有對應關係。
linguist.exe 是圖形化工具,載入ts檔案編輯儲存。
這時,如果源工程編碼時,不是utf8編碼,在linguist.exe看到的源字串就是亂碼。
編輯完儲存。這步,必須用linguist.exe編輯儲存完,才能用lrelease x.pro生成qm檔案
lrelease test.pro
用source insight, 將c:\qt\2010.05\qt\examples包含進來,看**操作.qm"
languagechooser::languagechooser(qwidget *parent)
: qdialog(parent, qt::windowstaysontophint)
groupbox->setlayout(groupboxlayout);
buttonbox = new qdialogbuttonbox;
showallbutton = buttonbox->addbutton("show all",
qdialogbuttonbox::actionrole);
hideallbutton = buttonbox->addbutton("hide all",
qdialogbuttonbox::actionrole);
connect(showallbutton, signal(clicked()), this, slot(showall()));
connect(hideallbutton, signal(clicked()), this, slot(hideall()));
qvboxlayout *mainlayout = new qvboxlayout;
mainlayout->addwidget(groupbox);
mainlayout->addwidget(buttonbox);
setlayout(mainlayout);
#ifdef q_ws_mac
qt_mac_set_menubar_merge(false);
#endif
setwindowtitle("i18n");
}
void languagechooser::checkboxtoggled()
window->setvisible(checkbox->ischecked());
}
找到的資料上,在載入.qm語言檔案後,還會去重新整理ui, 比官方demo考慮的細緻。也許是官方demo, 選擇完語言後,才顯示其他主ui, 所以不用去重新整理ui.
等用到的時候再試試。
Qt4 7 0 使用電容屏
cd build 4.7.0 configure opensource embedded arm xplatform qws linux armv6 g no webkit qt libtiff qt libmng no mouse tslib no mouse pc no mouse linuxt...
QT中的TS檔案與QM檔案
一 介紹一下qm檔案與ts檔案與作用與聯絡。qm是qt的語言檔案。用qt的languist先製作好ts檔案,再生成qm檔案,再在qt程式裡面載入qm檔案即可實現國際化 qm檔案是qt中translate類進行讀取的原始檔 英譯中的翻譯檔案 其 是不可讀懂的。ts檔案的生成 lupdate.exe v...
Qt翻譯家 ts檔案,刪除舊字串
qt語言家是qt生態強有力的組成部分,通常情況下,我們只需要更新翻譯,發布翻譯,然後用qt語言家編輯即可,有時候,當我們更改原始碼tr的字串字面量時,ts檔案中,還會有殘留翻譯文字,對於有潔癖或者強迫症的人來說,就很難受。刪除方法很簡單,如下操作 win下,進入命令列模式,lupdate test....