本项目为一款基于Qt框架与Socket通信技术开发的即时通讯软件,模拟了类似QQ的功能,在Linux环境下运行服务端程序,实现跨平台消息传输。
用C++/Qt编写的项目非常适合自学,并且这些项目都经过了测试验证是真实可靠的,请放心使用。Qt支持Windows、Linux/Unix、Mac OS X、Android、BlackBerry及QNX等多种平台,为不同系统提供了统一的开发环境。面向对象特性的C++语言与Objective-C等在某些方面相似,而Qt基于C++进行扩展,在继承了后者快速和简易等特点的同时也具备良好的封装机制,模块化程度高且易于重用。
此外,Qt采用signals/slots(信号和槽)的安全类型替代callback来实现组件间的协同工作。其API非常丰富,包括超过250个以上的类、基于模板的集合管理以及正则表达式处理功能等,并支持二维/三维图形渲染及OpenGL集成。同时提供大量开发文档。
Qt还集成了XML支持与Webkit引擎,可以将本地界面和网络内容无缝结合;而真正让其在众多Widgets(如Lesstif, Gtk, EZWGL等)中脱颖而出的是基于Qt的重量级软件KDE项目。信号槽机制是用于完成GUI操作响应的一种通信方式,在特定情况下触发信号并由对应的槽函数处理。
为什么采用这种方法而不是直接调用呢?实际生活中,老板通常可以轻松地给助理分配任务,但反过来则不然;同样在程序设计中也遵循类似的层级思想:上层模块可调用下层或同级的函数,而下层不能直接调用上级。若打破这种层次性,则会导致代码结构复杂难于维护。
为了解决这个问题,信号槽机制提供了一种解决方案,在保持原有层级架构的情况下实现了由低到高的功能传递;即当某一事件发生时(如助理有任务),可以触发一个Signal,并通过关联的Slot函数向上层进行消息通知。