- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
QT在国产操作系统中应用
QT在国产操作系统中应用摘要:随着国产软件的发展,基于国产操作系统下使用QT开发程序是图形用户界面软件开发研究的重点。本文分析和介绍了QT的实现结构原理、内部进程间的通信机制和完美的界面设计要素以及创建QT图形用户界面工程的主要步骤。
关键词:国产操作系统;QT;图形用户界面;信号;槽
中图分类号:TP311 文献标识码:A 文章编号:1007-9599 (2012) 13-0000-02
一、引言
在信息化建设过程中,随着计算机技术的快速发展,尤其近几年国家重视支持国产软件的发展,一系列国家政策的发布以及在“核高基”(核心电子器件、高端通用芯片及基础软件产品)的推动下,诞生了中标麒麟、红旗Linux等中文操作系统。从某个层面讲,操作系统的天下不再是微软独大了。这些操作系统产品的诞生对打破微软在中国的垄断地位,保护我国信息系统的安全,促进民族软件产业的发展具有重要的战略意义。
但目前针对国产操作系统,许多优秀的界面开发工具因受限于操作系统的限制,不能在国产操作系统上使用,或者说没有在微软操作系统使用那么方便。Qt的强大跨平台功能,无疑成为国产操作系统支持可视化软件开发的主要解决方案。
Qt是Nokia开发的跨平台的C++图形用户界面应用程序框架,完全面向对象的,很容易扩展,移植性好,并且允许真正地组件编程。而良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。目前Qt的强大功能及诸多优点赢得许多巨头IT厂商的青睐。
二、QT的实现结构原理
QT程序是基于C++编写的,图形用户界面变成同时需要运行效率和高水平的灵活性。QT通过结合C++的速度为这一领域提供了QT的对象模型。
QT的实现结构原理如下图:
QT的集成开发环境Qt Creator,在国产操作系统的安装与WINDOWNS上的安装几乎没什么区别,且已经做到相当的人性化了,用户只是根据向导所示的步骤即可。在功能方面,Qt Creator包括项目生成向导、高级的C++代码编辑器、浏览文件及类的工具、集成了Qt Designer、图形化的GDB调试前端,集成qmake构建工具等。
在界面事件服务方面,有如下几个特性:一种被称为信号和槽一种非常强大的事件和事件过滤器;可查询和可设计的属性项;根据上下文进行国际化的字符串翻译;完善的时间驱动的计时器等。QT把下面这些特性添加到了C++当中。这些大多是基于QObject的继承,通过标准C++技术实现的。
QApplication是必须构造的QT主对象,需要在一开始的时候就构造这个对象,并把命令行参数传递给这个对象,每个QT应用程序有且仅有一个QApplication对象,该对象必须在做其他事之前创建,这个对象处理一些底层操作,如事件处理,字符串本地化和控制界面外观等。
现今的国产操作系统大多基于LINUX基础上开发的,所以所使用的编译器与LINUX上相同即可。而如今的国产操作系统也是做的非常的人性化,如中标麒麟操作系统,操作时几乎与微软的操作系统没什么区别,让不熟悉LINUX操作系统环境的用户无需再去熟悉LINUX操作系统命令。在编译运行时只要点击工具条中的编译菜单,系统将自动调用编译器进行编译运行。
三、内部进程通信
在LINUX系统中开发QT内部进程有如下三个通信常用的三种机制:QCOP协议,Signal-Slot机制和FIFO机制,而QCOP协议主要用于QT嵌入式版本中。而对于桌面版的国产操作系统,下面我们主要介绍Signal-Slot机制和FIFO机制。
(一)Signal-Slot机制
要实现一个好的OOP库必须解决对象间的通信的问题。在Qt中的对象间通信方法被称作“Signal-Slot”,这也是Qt与其它一些方法的区别之一。一个类可以定义多个Signal和Slot,而且完全是安全的。Signal就好像是“事件”,而Slot则是响应事件的“方法”,其实和一般的函数没有太大的区别。而需要实现它们之间通信时,就将某个类的Slot和另外一个类的Signal“连接”起来,从而实现事件驱动。如下面语句:
connect(ui.confirm_btn,SIGNAL(clicked()),this,SLOT(confirm()));
表示点击界面中的确定按钮,程序将响应槽函数confirm()中的操作;当然,这里的信号是预先定义好的信号,用户在使用该机制时,可以根据需要自行定义信号。
(二)FIFO机制
除了Qt内部所特有的通信机制之外,一般操作系统中常用的进程间通信机制同样可以用于Qt系统内部不同进程之间的通信。如消息队列、共享内存、信号量、管道等机制,其中有些机制,如信号量,在Qt中重新进行了封装;有些机制则可以直接调
文档评论(0)