国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Linux環(huán)境下Qt庫(kù)多語(yǔ)言界面實(shí)現(xiàn)

2016-05-14 15:48木太里甫·艾山
軟件導(dǎo)刊 2016年5期

木太里甫·艾山

摘要:隨著網(wǎng)絡(luò)和計(jì)算機(jī)技術(shù)的發(fā)展及應(yīng)用,軟件產(chǎn)品的程序代碼與使用界面的語(yǔ)言數(shù)據(jù)分開,通過翻譯使用界面,或進(jìn)行特殊定制,使得軟件產(chǎn)品能夠在本地語(yǔ)言環(huán)境下使用。就面向國(guó)內(nèi)市場(chǎng)的軟件產(chǎn)品而言,本地化可以理解為中文化。在分析Qt庫(kù)的基礎(chǔ)上,對(duì)目前幾種主要的多語(yǔ)言界面開發(fā)技術(shù)進(jìn)行研究,并對(duì)跨平臺(tái)Qt庫(kù)的優(yōu)點(diǎn)進(jìn)行了分析。

關(guān)鍵詞:Linux;Unix;Qt庫(kù);C++

DOIDOI:10.11907/rjdk.161053

中圖分類號(hào):TP301

文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2016)005-0021-03

0 引言

隨著信息技術(shù)的發(fā)展特別是互聯(lián)網(wǎng)的普及,越來(lái)越多的人將計(jì)算機(jī)作為信息提取、存儲(chǔ)和交流的工具。經(jīng)過我國(guó)計(jì)算機(jī)專家多年努力,漢字的輸入、顯示和處理已經(jīng)取得了長(zhǎng)足進(jìn)展,但是對(duì)于多語(yǔ)言方面的資金和人力投入較少,使得這些多語(yǔ)言處理系統(tǒng)不夠標(biāo)準(zhǔn)和統(tǒng)一,嚴(yán)重阻礙了多語(yǔ)言信息技術(shù)的發(fā)展和信息交流。而目前使用Qt來(lái)開發(fā)多語(yǔ)言界面實(shí)現(xiàn)多語(yǔ)言處理被很多開發(fā)者看好。

本文在Linux環(huán)境下基于Visual C++進(jìn)行開發(fā)設(shè)計(jì),主要對(duì)多語(yǔ)言的顯示問題進(jìn)行研究,實(shí)現(xiàn)了多語(yǔ)言顯示、動(dòng)態(tài)切換等功能。設(shè)計(jì)并實(shí)現(xiàn)了多語(yǔ)言的顯示處理模型,模型首先使用tr( )函數(shù)處理系統(tǒng)中所使用的文字信息段,并將有關(guān)文字書寫方向的處理封裝在動(dòng)態(tài)切換模塊中,然后給出水平從左向右的文字格式,通過宏加載調(diào)用語(yǔ)言模塊,解決多語(yǔ)言的顯示及動(dòng)態(tài)切換問題。

1 Qt庫(kù)多語(yǔ)言界面開發(fā)環(huán)境

1.1 Linux

Qt庫(kù)是目前Linux環(huán)境下非常流行的一個(gè)面向?qū)ο蟮腃++類庫(kù)。隨著時(shí)間的推移, 使用Qt庫(kù)來(lái)開發(fā)Linux下的面向?qū)ο髴?yīng)用軟件將日益普遍。Qt是Linux下開發(fā)圖形應(yīng)用界面的一個(gè)分支,是一個(gè)多平臺(tái)的C++圖形用戶界面應(yīng)用程序框架,為應(yīng)用程序開發(fā)者提供建立藝術(shù)級(jí)圖形用戶界面所需的所用功能。

Ubuntu Linux操作系統(tǒng),在Ubuntu Linux桌面版原有基礎(chǔ)上,主要在系統(tǒng)優(yōu)化、硬件兼容、國(guó)際化語(yǔ)言支持以及界面設(shè)計(jì)等方面集中進(jìn)行了改進(jìn)[1],使之更加人性化,更加便于用戶使用和維護(hù)。Ubuntu Linux Desktop提供了豐富的在線幫助信息,是用戶使用和學(xué)習(xí)時(shí)的主要求助對(duì)象。

1.2 C++

Qt是基于面向?qū)ο蟮腃++語(yǔ)言,它提供了KDE桌面環(huán)境,目前已部分地支持水平反向模式。許多Qt特性基于QObject的繼承,通過標(biāo)準(zhǔn)C++技術(shù)實(shí)現(xiàn)。Qt包括多達(dá)250個(gè)以上的C++類,還提供基于模板的collections、serialization、file、I/O device、directory management、datetime類。甚至還包括正則表達(dá)式的處理功能,支持2D/3D圖形渲染,同時(shí)支持OpenGL。

1.3 Qt設(shè)計(jì)器

即Qt Designer,是用來(lái)設(shè)計(jì)和實(shí)現(xiàn)用戶界面并能夠在多平臺(tái)下使用的一種工具。Qt設(shè)計(jì)器可以使用戶界面設(shè)計(jì)實(shí)驗(yàn)變得簡(jiǎn)單,在任何時(shí)候都可以要求所生成的代碼去重建Qt設(shè)計(jì)器產(chǎn)生的用戶界面文件,并可以根據(jù)用戶的喜好來(lái)改變[2]。窗體設(shè)計(jì)工具如圖1所示。

Qt Designer新版本可以實(shí)現(xiàn)將所有Form組織在一起,既方便了管理,也可以在不同的Form之間共享圖像和數(shù)據(jù)。通常,一個(gè)工程中包含以下幾種類型的文件:工程文件 (.Pro)、窗體文件(.Ui)、窗體實(shí)現(xiàn)文件(.Ui.H)和主函數(shù)(.Cpp)等[5]。QtDesigner工作流程如圖2所示。

1.4 Unicode

Unicode是一種字符編碼方法,可以容納全世界所有語(yǔ)言文字的編碼方案。它主要用于解決使用不同語(yǔ)言編寫文本以及字符集種類繁多所帶來(lái)的種種問題。它給每個(gè)字符提供了一個(gè)唯一標(biāo)識(shí)的二進(jìn)制編碼,以滿足跨語(yǔ)言、跨平臺(tái)的文本轉(zhuǎn)換及處理要求。任何字符都可以無(wú)損地轉(zhuǎn)換為Unicode。目前,Unicode可以表示90 000余個(gè)編碼符號(hào)[7]。

Qt提供完整的Unicode支持,包括輸入法、字體、剪貼板、拖放和文件名。文件I/O缺省為L(zhǎng)atin-1,在QTextStream中帶有Unicode選項(xiàng)。Qt程序可以在Windows 95/98和Windows NT之間移植,而無(wú)需不同的二進(jìn)制碼以支持Unicode[4]。

2 Qt庫(kù)多語(yǔ)言界面實(shí)現(xiàn)

2.1 界面構(gòu)造

Windows環(huán)境為人們所熟知的Visual Basic及Visual C++都有比較方便的圖形界面構(gòu)造方式,而針對(duì)Qt也有一個(gè)圖形界面的所見即所得工具QtDesigner。根據(jù)這一工具可以任意構(gòu)造需要的圖形界面,并且可利用UIC工具將生成的UI文件轉(zhuǎn)換為CPP文件和h文件,實(shí)現(xiàn)界面融合。Qt Designer既有Windows系統(tǒng)下的版本,也有Unix等操作系統(tǒng)下的版本,可以根據(jù)需要在任意平臺(tái)上開發(fā)。鑒于Qt完美的跨平臺(tái)特性,這項(xiàng)工作由一個(gè)項(xiàng)目小組進(jìn)行即可[3]。具體開發(fā)過程如圖3所示。

2.2 動(dòng)態(tài)語(yǔ)言切換

對(duì)于絕大多數(shù)應(yīng)用程序,在main()中檢測(cè)用戶的首選語(yǔ)言并且加載適當(dāng)?shù)?qm文件。但是對(duì)于用戶則需要?jiǎng)討B(tài)切換語(yǔ)言,所有窗口首次生成時(shí)并不含有任何可見文字,所有文字部分全部設(shè)為空白。調(diào)用translate方法從當(dāng)前翻譯器中獲得對(duì)應(yīng)于當(dāng)前語(yǔ)言的可見文字,再分別設(shè)置每個(gè)文字項(xiàng)。

語(yǔ)言菜單中的兩個(gè)選項(xiàng)是一個(gè)信號(hào)發(fā)射機(jī)制。語(yǔ)言切換信號(hào)由MainWindow的translateTo*槽接收。首先由該槽卸載當(dāng)前的翻譯器,然后根據(jù)當(dāng)前語(yǔ)言類型重新將翻譯器加載到應(yīng)用程序中,最后調(diào)用所有有窗口的translate方法實(shí)現(xiàn)即時(shí)翻譯。方法如下:

4 發(fā)展前景

隨著Linux操作系統(tǒng)的普及和對(duì)于新一代開發(fā)工具的渴望,利用Qt庫(kù)來(lái)實(shí)現(xiàn)多種多層次的軟件開發(fā)平臺(tái)是一個(gè)必然趨勢(shì)。在Linux環(huán)境下,Qt是一種開發(fā)圖形程序應(yīng)用的理想構(gòu)架,利用跨平臺(tái)運(yùn)行機(jī)制,可以打破不同操作系統(tǒng)之間的約束,并且其面向?qū)ο蟮沫h(huán)境也是一大優(yōu)點(diǎn)。日益完善的Qt會(huì)以嶄新的一面面對(duì)廣大用戶群和開發(fā)群,使得基于Qt庫(kù)來(lái)實(shí)現(xiàn)多語(yǔ)種技術(shù)具有更加廣闊的發(fā)展前景。

5 結(jié)語(yǔ)

本文在介紹Qt庫(kù)相關(guān)技術(shù)和平臺(tái)的基礎(chǔ)上,闡述了基于Qt庫(kù)實(shí)現(xiàn)多語(yǔ)言界面的具體過程。筆者認(rèn)為,Qt庫(kù)多語(yǔ)言技術(shù)發(fā)展較為成熟,隨著時(shí)間的推移,使用Qt庫(kù)來(lái)開發(fā)Linux環(huán)境下的面向?qū)ο髴?yīng)用軟件將會(huì)變得越來(lái)越廣泛。Qt集成了很多C++類,因而編程起來(lái)方便簡(jiǎn)潔,可以實(shí)現(xiàn)精美的圖形用戶界面。隨著嵌入式技術(shù)的發(fā)展,它也廣泛應(yīng)用于嵌入式系統(tǒng)編程中,大大提高了編程性能。Qt作為一種新型的GUI應(yīng)用程序開發(fā)工具,無(wú)疑是一個(gè)劃時(shí)代的、頗具競(jìng)爭(zhēng)性的軟件工具。

參考文獻(xiàn):

[1]孫玉芳,姚延棟,吳健.傳統(tǒng)蒙古文變形顯示機(jī)制研究與實(shí)現(xiàn)[J].中文信息報(bào),2004(5):84-85.

[2]劉匯丹,建武,姚延棟,等.基于Qt的國(guó)際化圖形用戶界面設(shè)計(jì)與實(shí)現(xiàn)[J].中文信息報(bào),2006(4):94-98.

[3]倪繼利.Qt及Linux操作系統(tǒng)窗口設(shè)計(jì)[M].北京:電子工業(yè)出版社,2006(1):81-100.

[4]許德新,談?wù)穹哐訛I.基于Qt組件庫(kù)應(yīng)用程序的生成及其跨平臺(tái)實(shí)現(xiàn)[J].東北農(nóng)業(yè)大學(xué)學(xué)報(bào),2006(3):373-376.

[5]李全虎.交互界面開發(fā)工具——Qt[J].中國(guó)科技信息,2005(5):33.

[6]萬(wàn)長(zhǎng)勝,金革,王堅(jiān),等.用Qt進(jìn)行面向?qū)ο筌浖脑O(shè)計(jì)與開發(fā)[J].核電子學(xué)與探測(cè)技術(shù),2004(3):311-313.

[7]陳春艷,李寶智.基于高效UTF的Unicode編碼方式研究[J].電腦知識(shí)與技術(shù),2007(3):105-106.

(責(zé)任編輯:孫 娟)

Abstract:With the development of computer technology and large-scale application of computer technology, software products and the use of code language interface to separate the data through the use of translation interface, or a special custom-make software products to the local environment, the use of language. On the domestic market for software products, the localization can be understood as in culture. This article is currently on the Qt library to analyze and present several major multi-language interface on the development of the technology introduction and analysis, especially for cross-platform advantages of the Qt library analyzed.

Key Words: Linux;Unix Library;Qt;C++