Qt和C++
Qt是QML和JavaScript的C++扩展功能工具包,并且Qt是由C++开发的,所以C++贯穿了整个Qt的项目。我会着重从c++的角度来介绍Qt。
从C++的角度分析Qt,然后你会发现Qt通过内省数据的机制实现了许多现代语言的特性。这个是通过Qt的基础类QObject来实现的。
Qt使用源对象信息实现了信号和槽的回调绑定。每个信号都能绑定任意数量的槽函数或者其他的信号。当一个信号弄一个对象实例发出后,会调用绑定信号的槽函数,发送信号的对象不需要知道接受槽对象的任何信息,反之亦然。这个机制可以创建复用性非常高的组件,并且减少组件之间的依赖。
内省特性用于创建动态语言的绑定,使得QML可以调用暴露的C++对象实例,并且可以从JavaScript中调用C++函数,除了绑定Qt,C++,绑定标准的JavaScript也是一种非常流行的方式,并且也可以绑定Python,叫做PyQt
除了这些核心的特性,Qt还能使用C++开发跨平台的应用程序,Qt,C++在不同的操作系统中也提供了一套平台抽象,允许开发者专注于手上的任务 ,不许要你去了解如何在不同的平台上打开一个文件。这意味着可以在不同的平台上编译相同的代码,由Qt去解决不同平台的适配问题。最终保持本地构建的应用程序与目标平台的窗口风格一致。