999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux環境下Qt庫多語言界面實現

2016-05-14 15:48:59木太里甫·艾山
軟件導刊 2016年5期

木太里甫·艾山

摘要:隨著網絡和計算機技術的發展及應用,軟件產品的程序代碼與使用界面的語言數據分開,通過翻譯使用界面,或進行特殊定制,使得軟件產品能夠在本地語言環境下使用。就面向國內市場的軟件產品而言,本地化可以理解為中文化。在分析Qt庫的基礎上,對目前幾種主要的多語言界面開發技術進行研究,并對跨平臺Qt庫的優點進行了分析。

關鍵詞:Linux;Unix;Qt庫;C++

DOIDOI:10.11907/rjdk.161053

中圖分類號:TP301

文獻標識碼:A 文章編號:1672-7800(2016)005-0021-03

0 引言

隨著信息技術的發展特別是互聯網的普及,越來越多的人將計算機作為信息提取、存儲和交流的工具。經過我國計算機專家多年努力,漢字的輸入、顯示和處理已經取得了長足進展,但是對于多語言方面的資金和人力投入較少,使得這些多語言處理系統不夠標準和統一,嚴重阻礙了多語言信息技術的發展和信息交流。而目前使用Qt來開發多語言界面實現多語言處理被很多開發者看好。

本文在Linux環境下基于Visual C++進行開發設計,主要對多語言的顯示問題進行研究,實現了多語言顯示、動態切換等功能。設計并實現了多語言的顯示處理模型,模型首先使用tr( )函數處理系統中所使用的文字信息段,并將有關文字書寫方向的處理封裝在動態切換模塊中,然后給出水平從左向右的文字格式,通過宏加載調用語言模塊,解決多語言的顯示及動態切換問題。

1 Qt庫多語言界面開發環境

1.1 Linux

Qt庫是目前Linux環境下非常流行的一個面向對象的C++類庫。隨著時間的推移, 使用Qt庫來開發Linux下的面向對象應用軟件將日益普遍。Qt是Linux下開發圖形應用界面的一個分支,是一個多平臺的C++圖形用戶界面應用程序框架,為應用程序開發者提供建立藝術級圖形用戶界面所需的所用功能。

Ubuntu Linux操作系統,在Ubuntu Linux桌面版原有基礎上,主要在系統優化、硬件兼容、國際化語言支持以及界面設計等方面集中進行了改進[1],使之更加人性化,更加便于用戶使用和維護。Ubuntu Linux Desktop提供了豐富的在線幫助信息,是用戶使用和學習時的主要求助對象。

1.2 C++

Qt是基于面向對象的C++語言,它提供了KDE桌面環境,目前已部分地支持水平反向模式。許多Qt特性基于QObject的繼承,通過標準C++技術實現。Qt包括多達250個以上的C++類,還提供基于模板的collections、serialization、file、I/O device、directory management、datetime類。甚至還包括正則表達式的處理功能,支持2D/3D圖形渲染,同時支持OpenGL。

1.3 Qt設計器

即Qt Designer,是用來設計和實現用戶界面并能夠在多平臺下使用的一種工具。Qt設計器可以使用戶界面設計實驗變得簡單,在任何時候都可以要求所生成的代碼去重建Qt設計器產生的用戶界面文件,并可以根據用戶的喜好來改變[2]。窗體設計工具如圖1所示。

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

1.4 Unicode

Unicode是一種字符編碼方法,可以容納全世界所有語言文字的編碼方案。它主要用于解決使用不同語言編寫文本以及字符集種類繁多所帶來的種種問題。它給每個字符提供了一個唯一標識的二進制編碼,以滿足跨語言、跨平臺的文本轉換及處理要求。任何字符都可以無損地轉換為Unicode。目前,Unicode可以表示90 000余個編碼符號[7]。

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

2 Qt庫多語言界面實現

2.1 界面構造

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

2.2 動態語言切換

對于絕大多數應用程序,在main()中檢測用戶的首選語言并且加載適當的.qm文件。但是對于用戶則需要動態切換語言,所有窗口首次生成時并不含有任何可見文字,所有文字部分全部設為空白。調用translate方法從當前翻譯器中獲得對應于當前語言的可見文字,再分別設置每個文字項。

語言菜單中的兩個選項是一個信號發射機制。語言切換信號由MainWindow的translateTo*槽接收。首先由該槽卸載當前的翻譯器,然后根據當前語言類型重新將翻譯器加載到應用程序中,最后調用所有有窗口的translate方法實現即時翻譯。方法如下:

4 發展前景

隨著Linux操作系統的普及和對于新一代開發工具的渴望,利用Qt庫來實現多種多層次的軟件開發平臺是一個必然趨勢。在Linux環境下,Qt是一種開發圖形程序應用的理想構架,利用跨平臺運行機制,可以打破不同操作系統之間的約束,并且其面向對象的環境也是一大優點。日益完善的Qt會以嶄新的一面面對廣大用戶群和開發群,使得基于Qt庫來實現多語種技術具有更加廣闊的發展前景。

5 結語

本文在介紹Qt庫相關技術和平臺的基礎上,闡述了基于Qt庫實現多語言界面的具體過程。筆者認為,Qt庫多語言技術發展較為成熟,隨著時間的推移,使用Qt庫來開發Linux環境下的面向對象應用軟件將會變得越來越廣泛。Qt集成了很多C++類,因而編程起來方便簡潔,可以實現精美的圖形用戶界面。隨著嵌入式技術的發展,它也廣泛應用于嵌入式系統編程中,大大提高了編程性能。Qt作為一種新型的GUI應用程序開發工具,無疑是一個劃時代的、頗具競爭性的軟件工具。

參考文獻:

[1]孫玉芳,姚延棟,吳健.傳統蒙古文變形顯示機制研究與實現[J].中文信息報,2004(5):84-85.

[2]劉匯丹,建武,姚延棟,等.基于Qt的國際化圖形用戶界面設計與實現[J].中文信息報,2006(4):94-98.

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

[4]許德新,談振藩,高延濱.基于Qt組件庫應用程序的生成及其跨平臺實現[J].東北農業大學學報,2006(3):373-376.

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

[6]萬長勝,金革,王堅,等.用Qt進行面向對象軟件的設計與開發[J].核電子學與探測技術,2004(3):311-313.

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

(責任編輯:孫 娟)

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++

主站蜘蛛池模板: 日本午夜网站| 一区二区无码在线视频| 精品国产电影久久九九| 亚洲动漫h| 色综合久久综合网| 视频国产精品丝袜第一页| 美女一区二区在线观看| 亚洲黄色视频在线观看一区| 强奷白丝美女在线观看| 亚洲中字无码AV电影在线观看| 亚洲精品视频在线观看视频| 亚洲色欲色欲www在线观看| 狠狠色婷婷丁香综合久久韩国| 国产成人永久免费视频| 成人年鲁鲁在线观看视频| 精品综合久久久久久97超人| 国产二级毛片| 精品99在线观看| 国产人成午夜免费看| 午夜成人在线视频| 日韩午夜福利在线观看| 免费一级无码在线网站| 亚洲国产中文综合专区在| 热99精品视频| 欧美日本在线| 欧美午夜理伦三级在线观看| 天堂成人在线| 久久久噜噜噜| 国产拍揄自揄精品视频网站| 一区二区三区四区日韩| 久久人人爽人人爽人人片aV东京热 | 福利视频久久| AV网站中文| 色婷婷电影网| 亚洲一区免费看| 老色鬼欧美精品| 超碰免费91| 精品夜恋影院亚洲欧洲| 国产精品美女网站| 国产精品人人做人人爽人人添| 亚洲视频色图| 波多野结衣无码AV在线| 国产又黄又硬又粗| 伊人查蕉在线观看国产精品| 全部毛片免费看| 狠狠色丁香婷婷综合| 亚洲第一区欧美国产综合 | 亚洲精品无码久久毛片波多野吉| 国产美女免费网站| 日韩久草视频| 无码专区国产精品第一页| 欧美激情综合一区二区| 香蕉精品在线| 国产亚洲现在一区二区中文| 国产精品一区二区在线播放| 亚洲日韩国产精品综合在线观看 | 伊人久久大香线蕉成人综合网| 国产永久在线视频| 男女男精品视频| 91在线丝袜| 国产亚洲精品自在久久不卡| 2021国产乱人伦在线播放| 久久中文电影| 婷婷色在线视频| 精品撒尿视频一区二区三区| 国产免费网址| 亚洲日本中文字幕乱码中文 | 欧美精品1区2区| 亚洲第一极品精品无码| 91美女视频在线观看| 免费国产高清精品一区在线| 国产经典在线观看一区| 免费看黄片一区二区三区| 色综合色国产热无码一| 午夜影院a级片| www.99在线观看| 欧美国产日韩另类| 亚洲国产日韩欧美在线| 成人免费午间影院在线观看| 国产精品不卡永久免费| 欧美成人看片一区二区三区 | 青草视频在线观看国产|