C++ QT是否使用托管代码?

C++ QT是否使用托管代码?,c++,qt,C++,Qt,我一直在研究QT,并看到它是多么理想的编码方式:一次编码,到处部署,甚至拖放。(仅适用于成年人:D)不管怎样,对于标准QT表单,它是托管的、非托管的还是C++/CLI?我习惯了原生/非托管C++代码,MSVC C++使一切变得比实际需要复杂,我只能部署到一个平台。然而,作为一个老学校C++唯一的编码器,我决定如果我必须学习托管代码,我将反对使用Qt。我意识到有一天我可能不得不学习管理,但现在如果我能避免它,我会节省很多时间 Qt是一个面向开发人员的跨平台应用程序和UI框架 使用C++或QML,一

我一直在研究QT,并看到它是多么理想的编码方式:一次编码,到处部署,甚至拖放。(仅适用于成年人:D)不管怎样,对于标准QT表单,它是托管的、非托管的还是C++/CLI?我习惯了原生/非托管C++代码,MSVC C++使一切变得比实际需要复杂,我只能部署到一个平台。然而,作为一个老学校C++唯一的编码器,我决定如果我必须学习托管代码,我将反对使用Qt。我意识到有一天我可能不得不学习管理,但现在如果我能避免它,我会节省很多时间

Qt是一个面向开发人员的跨平台应用程序和UI框架 使用C++或QML,一种CSS和JavaScript的语言。Qt创建者是 支持qtide

使用QualC++语法编写Qt+代码,使用QT类、QT宏和QT元调用机制,但这只是C++。Qt不依赖于C++/CLI或其他专有框架。

正如您所说的“托管”,没有一个Qt不受管理(没有CLI或CLR或诸如此类)。Qt只是C++。 然而,它确实管理像智能指针这样的对象,这可能会在一开始咬到你。当您创建一个窗口并将小部件放在其中时,小部件将成为窗口的子窗口,当您删除窗口时,Qt将自动为您删除小部件


这与使用智能指针非常相似,尽管Qt在特定情况下不使用智能指针。实际上,小部件本身就是智能指针。

是什么让您认为Qt依赖于CLI/CLR或托管代码?(答案是否定的-使用Qt不需要触摸C++/CLI。)@us2012我只是仔细检查了一下,因为我在查看,没有发现任何迹象表明存在或没有。更具体地说,你指的是QObject,说它是智能指针并不十分准确,更像是一个只管理其子对象(指针)内存的父对象,而不是父对象本身。实际上,
QObject
管理树,
QWidget
派生自
QObject
。此外,当对象被删除时,
QPointer
s也会自动设置为NULL。因此,一个对象可以有多个
QPointer
变量,当该对象被删除时,所有这些
QPointer
s将设置为NULL。