Qt被归类为c ++库吗?如果不是图书馆,你会如何对QT进行分类?

Tre*_*ith 10 c++ qt cross-platform language-design

我最近开始研究Qt(我安装了Qt 4.5.2并安装了他们的Eclipse-CDT插件,称为"qt integration v1.5.2",我将在Linux-Eclipse-CDT-QTintegration中进行所有开发).

最初我认为Qt是一个直接的vanilla C++库但是当我安装并开始运行Qt示例代码时,我看到很多"怪异"的东西,我认为是非标准的.

我的目标是在高层次的抽象中理解:

  • Qt被归类为C++库吗?
  • 如果不是图书馆,你会如何对Qt进行分类(类比/隐喻被赞赏)?

Jos*_*ley 30

Qt是一个框架,而不是一个库.这不是编程语言强制执行的硬性和快速区分,而是描述了代码的设计和使用方式:

一个是由您的代码别人的代码.使用库意味着您的应用程序保持原样,它只有另一个库来帮助它.

一个框架是你的代码适合别人的代码.使用框架意味着框架定义了应用程序的结构.

如果您正在使用框架,则需要了解该框架的约定,这些约定可能与基本语言略有不同; 否则,你可以花很多时间来对抗框架,你会错过它所提供的一些东西.

特别是Qt看起来不像直接的vanilla C++,因为它不是直接的vanilla C++.它为C++的对象系统添加(有限的)扩展,以允许信号和插槽等功能; 这些扩展是使用Qt的moc实现的,它充当C++预处理器.有关Qt的C++扩展的更多信息: