Qt 的哪个类可以代替 MFC 的 CPtrList 类?

Posted

技术标签:

【中文标题】Qt 的哪个类可以代替 MFC 的 CPtrList 类?【英文标题】:What class of Qt can replace the class CPtrList of MFC? 【发布时间】:2017-05-07 06:24:58 【问题描述】:

问题如题:Qt的什么类可以代替MFC的CPtrList类?

【问题讨论】:

std::vectorstd::list 有什么问题? @CodyGray Why use QVector(Qt) instead of std::vector 【参考方案1】:

在最新的 Qt 版本(我的意思是 Qt5)中,没有任何直接替代。

但是你可以使用QList<T>实现类似的功能

例如:

QList<QObject*> 可以获取从QObject 派生的类的所有对象。

QList<QWidget*> 可以获取从QWidget 派生的类的所有对象。

您可以迭代列表并通过类型转换获取相应的对象。

在 Qt3 中,QPtrList 的名称与 MFC 中的 CPtrList 非常相似,还有一些类似的功能,现在已经过时了。

下面的链接也说有点像QList 是另一种选择(在下面的链接中查找 QPtrList)

https://www.kdab.com/porting-from-qt-4-to-qt-5/

【讨论】:

Please don't abuse code formatting。 “Qt”是库的名称,而不是代码。

以上是关于Qt 的哪个类可以代替 MFC 的 CPtrList 类?的主要内容,如果未能解决你的问题,请参考以下文章

qt 与 mfc 对比

QT跟MFC的区别?QT可以调用MFC的东西吗?

MFC树形控件响应

MFC怎么知道哪个窗口对应的哪个类

MFC和QT的区别

Qt持久性对象进行序列化(同时比较了MFC与Java的方法)