Qt 實現分割視窗並國際化

來源:互聯網
上載者:User

哈爾濱理工大學軟體工程專業08-7李萬鵬原創作品,轉載請標明出處

http://blog.csdn.net/woshixingaaa/archive/2010/08/10/5802312.aspx

Qt中提供了QSqlitter類實現分割視窗,分割視窗可以靈活分布視窗的布局,經常用於類似檔案管理工具的視窗設計中。Qt中提供QTranslator類和QLinguist工具進行國際化。本執行個體實現一個分割視窗,並國際化。

 

                             國際化前                                                                            國際化後

建立QSlitter的對象, 首先是橫向的主分割視窗(Qt::Horizontal),再建立一個右部分割視窗(Qt::Vertical),然後將3個QTextEdit對象裝進各個視窗中,setAlignment()方法用來設定QTextEdit中文字的對齊。

Qt::AlignLeft:靠左對齊

Qt::AlignRight:靠右對齊

Qt::AlignCenter:文字置中

Qt::AlignUp:文字與頂端對齊

Qt::AlignBottom:文字與底部對齊

setOpaqueResize(bool)用來設定分割視窗的分割條移動時是否是即時更新顯示,若設為true則即時更新顯示,若設為false則在拖動時只顯示一條灰色的粗線條。setStretchFactor()方法用於設定可伸縮控制項,它的第一個參數指定設定的控制項序號,控制項序號按插入的先後次序從0起依次編號,第二個參數大於0表示此控制項為可伸縮控制項,當整個對話方塊的寬度發生變化時,左部的文本編輯框寬度保持不變,右部的分割框寬度隨整個對話方塊大小的改變進行調整。

#include <QApplication><br />#include <QSplitter><br />#include <QTextEdit><br />#include <QTranslator><br />int main(int argc, char *argv[]){<br />QApplication app(argc,argv);<br />QTranslator qtTranslator;<br />qtTranslator.load("9.qm");<br />app.installTranslator(&qtTranslator);<br />QSplitter * mainSplitter = new QSplitter(Qt::Horizontal,0);<br />QTextEdit * e1 = new QTextEdit(QObject::tr("left window"),mainSplitter);<br />e1->setAlignment(Qt::AlignCenter);<br />QSplitter * rightSplitter = new QSplitter(Qt::Vertical,mainSplitter);<br />rightSplitter->setOpaqueResize(false);<br />QTextEdit * e2 = new QTextEdit(QObject::tr("top window"),rightSplitter);<br />e2->setAlignment(Qt::AlignCenter);<br />QTextEdit * e3 = new QTextEdit(QObject::tr("bottom window"),rightSplitter);<br />e3->setAlignment(Qt::AlignCenter);<br />mainSplitter->setStretchFactor(1,1);<br />mainSplitter->show();<br />return app.exec();<br />}

下面開始國際化,所謂國際化,不僅僅是將介面上的各種文字翻譯成另外的語言,還有一些是要進行書寫方式和貨幣等的轉化。比如,阿拉伯書寫時從右向左的,這些在國際化中是必須完成的。

首先,我們要在pro中增加一行

TRANSLATIONS += myApp.ts

 

myApp.ts是要建立的翻譯檔案,這個名字是任意的,不過尾碼名需要的是ts。然後我們開啟命令提示字元,進入工程所在目錄,也就是我的目錄 Qt/9,然後輸入

lupdate 9.pro

如果出現如下效果,說明ts檔案建立成功

最後一行是說3個需要翻譯,0個已經存在,也就是說,這個檔案是建立的。你可以在工程中找到這個ts檔案,可以用記事本開啟這個檔案,這個檔案實際上是一個XML檔案。我們用專業的工具Linguist開啟ts檔案。

然後進行翻譯工作,完成翻譯後儲存。然後菜單下有個發布,點擊它,工程檔案夾下會有個myApp.qm檔案,這就是我們翻譯得到的檔案,Qt 的qm檔案是二進位格式的,因此他經過了高度最佳化,體積很小。再看一下這段代碼:

QTranslator qtTranslator;<br />qtTranslator.load("myApp.qm");<br />app.installTranslator(&qtTranslator);

首先建立一個QTranslator的對象,然後載入qm檔案,也就是那個我們翻譯後得到的二進位檔案,然後把這個對象安裝到QApplication中,重新編譯,哈哈,大功告成。到此為止,如果覺得好請鼓勵以下,不容易阿。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.