基于Qt的国际化图形用户界面设计与实现
11 , 2 1 1 刘汇丹 ,芮建武 ,姚延栋 ,吴健
( 11中国科学院 软件研究所开放系统与中文信息处理中心 ,北京 100080; )21中国科学院 研究生院 ,北京 100080
摘要 :一次开发多语言使用是国际化软件开发的主要目标 。但是世界上的文字多种多样 ,它们的书写方 向也有所不同 ,除了水平从左向右书写的英文 、水平从右往左书写的阿拉伯文外 ,还有类似蒙古文这样垂直排 列的文字 ,这对计算机图形用户界面提出了更高的要求 ,现有的计算机系统将这类垂直排列的文字沿水平方 向输出 ,极不符合少数民族人民的习惯 。在分析现有 Q t库对类似阿拉伯文这样从右向左书写的文字的部分 支持机制的基础上 ,我们设计并实现了支持四种方向模式的国际化的图形用户界面 ,现在它已经能够适应世 界上几乎所有的文字 。这对于软件国际化以及民族语言信息处理有重要意义 。
关键词 :计算机应用 ;中文信息处理 ;图形用户界面 ; Q t库 ;国际化 ;民族文字处理
中图分类号 : TP391 文献标识码 : A
D e s ign an d Im p lem en ta t ion of In terna t iona l ized Gra ph ica l
U ser In terfa ce Ba sed on Q t 1, 2 1 1 1L IU H u i2dan, RU I J ian2wu, YAO Yan2dong, WU J ian
( 11 In stitu te of Softwa re, Ch inese A cadem y of Science s, B e ijing, 100080 , Ch ina;
)21Gradua te U n iversity of the Ch ine se A cadem y of Sc ience s, B eijing, 100080 , Ch ina A b stra c t: The re a re va riou s sc rip ts in the wo rld wh ich have d iffe ren t w riting d irec tion s. It’s a cha llenge to deve lop grap h ica l u se r in te rface wh ich can be adap tab le to the w riting d irec tion of the sc rip t be ing p roce ssed. In th is p ap e r, the requ irem en ts of grap h ica l u se r in te rface adap tab le to va riou s sc rip ts a re ana lyzed and fou r k ind s of run2tim e mode s a re p re sen ted in acco rd ing w ith w riting d irec tion s of the sc rip ts. Then the m echan ism of Q t lib ra ry to suppo rt sc rip ts like A rab ic, wh ich is w ritten from righ t to left, is ana lyzed. B a sed on th is m echan ism , a so lu tion is p ropo sed and im 2 p lem en ted to suppo rt such sc rip ts a s trad itiona lMongo lian w ritten ve rtica lly from top to bo ttom. Te st fo r th is imp lem en2 ta tion show s tha t Grap h ica l U se r In te rface can au tom a tica lly co rre spond to d iffe ren t d irec tion s of the sc rip ts and th is so lu tion can sa tisfy the requ irem en t of m u ltilingua l grap h ica l u se r in te rface.
Key word s: comp u te r app lica tion ; Ch ine se info rm a tion p roce ssing; grap h ica l u se r in te rface, Q t lib ra ry, in te rna tiona l2 iza tion; m ino rity sc rip t p roce ssing
1 引言
随着信息技术的发展 ,计算机能够处理的语言越来越多 ,然而世界上的语言文字多种多
3 收稿日期 : 2005 - 05 - 14 定稿日期 : 2006 - 06 - 01
( ) 基金 项 目 : 国 家 863 计 划 资 助 项 目 2002AA001033 ; 国 家 863 计 划 软 件 重 大 专 项 资 助 项 目
( ) ( ) 2003AA 1Z2110;中国科学院知识创新工程方向性项目资助 KGCX2 2SW 2504
( ) 作者简介 :刘汇丹 1982—,男 ,硕士生 ,主要研究方向是系统软件与中文信息处理 .
[ 1 ] 样 ,一些少数民族的语言文字对计算机图形用户界面的发展提出了挑战 。阿拉伯文是从右向左书写的 ,而蒙古文和日文都是垂直排列的 ,但它们又不完全相同 ,蒙古文各列之间从左向 右排列 ,而日文各列之间从右向左排列 。现在的计算机系统已经能够部分的支持从右向左书 写的文字 ,但是对于垂直排列的文字 ,一般是将其旋转为水平方向输出 。然而 ,在蒙古文和阿 拉伯文中 ,一个词中两个相邻的字符的字形是连接在一起 ,而每个字符随着它在词中的位置的
[ 2,4 ] 不同也有不同的变形显现 。所以在将如蒙古文一类的文字的字符串旋转为水平方向时 , 单个字符的字形也作了 90度的旋转 。对于普通的用户来说 ,他们只有歪着脑袋才能看懂计算 机中的文字 。计算机对于类似蒙古文这样垂直排列的文字的支持现状严重阻碍了少数民族地
区的信息化进程 。所以现在的计算机系统急需一种支持各种文字风格的图形用户界面 。
根据各种语言文字书写方向的不同 ,我们
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
出应用程序运行的四种方向模式 ,这四种方 向模式是 :
? 水平正常模式 对应于英文或者汉字一类的文字 ,字符之间从左向右排列 ,目前大多
数计算机用户能够见到的图形用户界面属于这一模式 ;
? 水平反向模式 ,字符之间从右向左排列 ; 对应于阿拉伯文一类的文字
? 垂直正常模式 对应于蒙古文一类的文字 , 字符之间从上向 下 排列 , 各 列从 左 向右排列 ;
对应于日文一类的文字 ,字符之间从上向下排列 ,各列从右向左排列 。 ? 垂直反向模式
根据所要显示的语言文字的不同 ,用户可以指定应用程序在相应的模式下运行 ,从而获得
最优化的显示效果 ,最大限度地符合用户的习惯 。
Q t库及其对水平反向模式的支持2
Q t是一个跨平台的图形用户界面应用程序开发的 C ++工具箱 ,是 KD E桌面环境的基础 , 目前已经部分地支持水平反向模式 ,用户可以通过使用运行参数“2reve rse”来指定应用程序在
() ()水平反向模式下运行 。Q t主要通过应用程序类 QApp lica tion 、布局类 QL ayou t和部件类等 之间的协作来实现对水平反向模式的支持 ,下面分别说明 。
211 应用程序类
任何一个 Q t应用程序都对应着 QApp lica tion 类的一个实例 。Q t设置布尔类型的静态全 局变量 reve rse_ layou t,用来存储应用程序的运行模式是否为反向模式 。QApp lica tion类中相应
( )( )的函数 reve rseL ayou t 和 se tR eve rseL ayou t 分别用来读写此变量 。在处理运行参数时 ,如果 参数列表中包含字符串“2reve rse”,则设置应用程序在反向模式下运行 。在其它的类中可以通
( )过 QApp lica tion: : reve rseL ayou t 来获取变量 reve rse_ layou t的值 ,布局类和部件类等也正是通 过这种方式来判断程序运行在水平正常模式还是水平反向模式 ,并据此作出和方向模式相一
致的表现 。
212 布局类
QL ayou t类来控制部件的布局 ,它有两个子类 QBoxL ayou t和 Q GridL ayou t,前者可以按单行 或者单列的方式布局各个部件 ,后者按照网格的方式布局各个部件 。QBoxL ayou t类中有一个
成员变量用来指示布局方向 ,可以是从上向下 、从下向上 、从左向右 、从右向左四种方向 。如果是按照单行方式布局各个部件 ,则将这些部件按照其索引顺序水平排列 ,根据其前面的部件的 尺寸和位置以及对齐方式计算这些部件的位置 ; 单列方式与此类似 ; 如果是按照网格方式布
像变换 ,从而得到其水平反向模式下的位置 。余下的工作和水平正常模式一致 。
213 部件类
对于大部分的部件 ,他们在水平反向模式下的外观和表现与水平正常模式是一样的 ,而对
于另一部分部件 ,它们内部有一些子部件 ,而这些子部
件的位置两种模式下是不同的 。Q t根据方向模式调整
子部件的位置 。子部件的位置和大小的计算以及绘制
()都在风格类 Q Style中完成 。Q t在 Q Style类中提供了
( )visua lR ec t 函数 ,在水平反向模式下它根据部件占用
(的矩形空间将其子部件的矩形空间作镜像处理 如图
) 图 1 水平反向模式下子部件的 1所示 。还有一些部件 ,它们由一些 item 组成 ,例如
位置的镜像处理示意图 菜单栏中有菜单项 ,图标视图中有很多的图标等 ,菜单
栏中单个的 菜 单 项 和 图 标 视 图 中 单 个 的 图 标 就 是 i2 tem ,在这些部件中需要计算各个 item 的位置 ,这由单个的部件类在其内部根据方向模式分别
计算来实现 。
另外 , Q t的文本处理实现了对从右向左书写的文字的支持 ,详情请参见文献 [ 5 ] ,不再赘 述 。总之 , Q t通过在应用程序类中设置静态变量作为标志 ,通过布局类实现部件之间相对位 置的确定 ,通过部件类和风格类实现部件内各个子部件位置的确定 ,并通过对从右向左书写文
字的支持 ,实现了对水平反向模式的支持 。
Q t库扩充
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
3
Q t在支持水平正常模式的基础上 ,实现了对水平反向模式的支持 ,这只涉及部件在水平 方向上位置的变化 。而要实现对四种方向模式的支持 ,需要考虑四个方面的差别 ,一是部件间 相对位置及所占矩形空间尺寸的变化 ,二是部件内的子部件或者部件元素之间位置及所占矩 形空间尺寸的变化 ,三是文本输出方向的变化 ,四是对键盘事件和鼠标事件的响应方式的变 化 。我们的方案的总体思想是根据方向模式进行相应的图形界面绘制以及事件响应 ,下面介 绍我们的方案 。
311 应用程序类和布局类
首 先 ,定义一个布尔类型的静态全局变量 ve rtica l_ layou用t 来指示程序是否运行在垂直模
表 1 变量的取值与方向模式的对应关系 式下 ,在处理运行参数的函数中加入对
ve rtica l_ layou t取值“2ve rtica l”字符串的处理 ,即在发现运行
TRU E FAL SE 参数中有“2ve rtica l”字符串时 ,设置程序
reve rse_ layou t TRU E 垂直反向模式水平反向模式的运行模式为垂直模式 。经过这一步之 取值 FAL SE 垂直正常模式水平正常模式后 ,有两个布尔类型的变量共同决定程 序的运行模式 ,它们的四种不同的取值组合对应于程序运行的四种方向模式 ,如表 1 所示 。
其次 ,对于布局类 QBoxL ayou t,在垂直模式下 ,将其布局方向作映射 ,原来在水平模式下的 四种布局方向从上向下 、从下向上 、从左向右 、从右向左分别映射为从左向右 、从右向左 、从上 向下 、从下向上 。对于 Q GridL ayou t只需要在垂直模式下将行列值调换 ,即水平模式下第 row 行第 co l列的部件在垂直模式下将其映射为第 co l行第 row 列 。其它工作同水平模式 。这样 布局类就能够支持四种方向模式了 。
312 部件类
Q t图形化的用户界面都是由一个个的部件构成 ,除了前面提到的各种 item 外 ,所有可视 化的部件都由 QW idge t类继承而来 。垂直模式下部件的表现与水平模式下最大的区别有两 点 ,一是部件所占矩形空间 ,例如一个单行的文本框 ,在水平模式下 ,它的宽度根据所要显示的 字符串的长度限制来计算 ,而其高度根据字符的高度来计算 ,所以一般来说宽度大于高度 ; 而 在垂直模式下 ,它的高度根据字符串长度计算 ,宽度根据字符高度计算 ,所以一般来说高度大
(于宽度 以上针对英文 而言 , 其 它文 字 类似 ; 英 文字 符 在垂 直模 式下 被 顺时 针旋 转 90 度输 ) 出 。二是对鼠标和键盘事件的响应 ,例如键盘上的左方向键指示屏幕上焦点的左移 ,在垂直 模式下它应该保持这一含义 。在水平正常模式下的单行文本框中 ,按下左方向键对应于字符 串中光标位置逻辑上前移一个字符 ,而在水平反向模式下这一功能应由右方向键来完成 ,在垂 直正常模式下和垂直反向模式下由上方向键来完成 。
我们为 QW idge t类增加一个成员函数 ,它根据当前的方向模式判断部件应该按照水平方 向还是垂直方向显示 。函数如下 :
( ) O rien ta tion QW idge t: : visua lD irec tion con st
{
(( ) ) re tu rn QApp lica tion: : ve rtica lL ayou t ? V e rtica l : Ho rizon ta l;
}
其中 , O rien ta tion是一个枚举类型 O rien ta tion { Ho rizon ta l = 0 , V e rtica l}。经过这一步之 后 ,在各个部件内部均可以根据此函数的返回值做出与方向模式相应的表现 。各个部件类中
需要修改的成员函数包括以下几类 :
( )( ) ? 和部件大小相关的函数 ,主要有 sizeH in t 和 m in im um SizeH in t ;
( ) ( )?和响应鼠标键盘事件相关的函数 ,此类函数包括 even tF ilte r 、keyP re ssEven t 以及其 它处理特定的鼠标事件的函数 ;
( ) ? 和部件绘制相关的函数 ,此类函数包括 p a in tEven t 等 。
313 风格类
在 Q t中 ,风格类主要完成构成部件的子部件在部件内部所占矩形空间的计算 ,完成基本
( )元素 p rim itive e lem en t以及子部件的绘制等工作 , Q t提供的风格有 W indow s风格 、Mo tif风格 、 CD E风格 、Mo tifP lu s风格 、P la tinum 风格 、SG I风格 、W indow s XP风格 、M ac in to sh风格等等 ,图 2
显示了使用不同的风格绘制出来的组合框部件的外形 。
图 2 使用不同的风格类绘制出来的组合框
间 ,根据方向模式分别绘制相应的几何图形 。
314 文本处理类
Q t中所有的绘制工作都通过调用 Q Pa in te r类相关的函数完成 ,这包括文本的绘制 。对于
( )很短的文本如菜单项中的文本 ,直接调用 Q Pa in te r类的 d rawText 绘制 ; 对于较长的文本 ,在
[ 5 ] 绘制之前要经过分段 、文本布局 、条目化等一系列的格式化工作 ,再调用 Q Pa in te r类的 d raw2
[ 5 ] ( ) Text 绘制 , Q Pa in te r类最终调用字体引擎完成文本的绘制 。
在 Q Pa in te r类中定义了枚举类型 TextD irec tion {A u to, R TL , L TR }指示文本的书写方向 () 从左向右或从右向左 ,为了加入对垂直方向书写的文字的支持 ,我们将其重新定义 TextD i2
( rec tion {A u to, R TL , L TR , TTB _L TR , TTB _ R TL } , 其 中 TTB _L TR Top To Bo ttom , L eft To
)( )R igh t和 TTB _R TL Top To Bo ttom , R igh t To L eft分别表示垂直方向书写 ,各列从左向右排列 和从右向左排列 。
在与文本格式化相关的各个类中添加 TextD irec tion 类型的成员变量以及相应的函数 se t2
( )( ) D irec tion 和 ge tD irec tion ,在文本的格式化过程中根据文本方向分别作不同的处理 。在使 用字体引擎输出单个字符时根据文本方向确定字形是否需要旋转输出 。
4 实现
经过以上修改之后的 Q t能够支持四种方向模式 ,加上 Q t本身已经支持多种语言 ,应用程 序开发人员只要使用布局类来实现 GU I的布局 ,就可实现不同文字风格的国际化图形用户界 面应用程序的开发 。遵循 Q t的国际化编程
规则
编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf
,我们编写了一个包含较多可视化部件的示例 程序 ,它在不同的方向模式以及不同的语言下的外观如图 3所示 。
a1水平正常模式简体中文界面 b1水平反向模式维吾尔文界面
c1垂直正常模式蒙古文界面 d1垂直反向模式繁体中文界面
图 3 同一应用程序在四种方向模式下的外观
5 结束语
国际化是计算机软件发展的趋势 ,一次开发多语言使用是程序员的梦想 ,垂直排列的文字 对计算机图形用户界面的发展提出了挑战 。在现有 Q t库的基础上 ,我们设计了支持四种方向 模式的国际化图形用户界面方案并实施这一方案获得了新的 Q t库 。在新的 Q t库下 ,能够很 容易地开发出支持不同文字风格的图形用户界面应用程序 ,这对于计算机软件的国际化是一 次促进 ,也提高了计算机对民族语言的支持水平 。
参 考 文 献 :
( ) 马卫娟 ,方志刚 . 人机交互风格及其发展趋势 [ J ]. 航空计算技术 , 1999. 9 , 29 7 : 16 - 20. [ 1 ]
确精扎布 . 蒙古文编码 [M ]. 呼和浩特 :内蒙古大学出版社 , 2000. 8, 187 - 197. [ 2 ] 吉日木图 ,敖其尔 ,那日松 ,等 . 蒙古文编码问题的探讨 [ A ]. 鲍怀翘 ,金星华 ,宗成庆主编 . 少数民族语言 [ 3 ] 信息技术研究进展 :中国少数民族语言信息技术与语言资源库建设学术研讨会
论文
政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载
集 [ C ]. 中国北京 :
国家民族事务委员会文化宣传司 ,中国科学院自动化所 , 2004. 4. 168 - 172.
( ) 芮建武 ,吴健 ,孙玉芳 . 国际化
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
框架下蒙文操作系统的设计 [ J ]. 计算机研究与发展 , 2006. 4, 43 4 : [ 4 ] 716 - 721.
姚延栋 ,吴健 . Q t国际化文本显示机制分析 [ A ]. 鲍怀翘 ,金星华 ,宗成庆主编 . 少数民族语言信息技术
研究进展 :中国少数民族语言信息技术与语言资源库建设学术研讨会论文集 [ C ]. 中国北京 : 国家民族 [ 5 ] 事务委员会文化宣传司 ,中国科学院自动化所 , 2004. 4. 219 - 222.
重 要 通 知
中国中文信息学会将于 2006 年 11 月 21 —23日在北京隆重召开“中国中文信息学会第六
)(次全国会员代表大会暨成立二十周年学术会议 ”。会议内容有四项 : 一 召开中国中文信息
) (学会第六次全国会员代表大会 ; 二 举办“中国中文信息学会成立二十五周年学术会议 ”; ())(三 举办一次高规格的“中文信息处理重大成果汇报展 ”; 四 隆重颁发“钱伟长中文信息处
理科学技术奖 ”。