QMetaObject 的 QAbstractItemModel,我必须自己写吗?

Posted

技术标签:

【中文标题】QMetaObject 的 QAbstractItemModel,我必须自己写吗?【英文标题】:QAbstractItemModel for QMetaObject, do I have to write it myself? 【发布时间】:2010-09-20 02:49:01 【问题描述】:

建立在 Qt 反射系统之上的一套数据模型似乎是一种自然的协同作用,但我在 Qt 库本身或第三方中都没有找到这样的野兽。有谁知道这样的事情是否存在?

我正在寻找用于编辑和显示 QObjects QMetaObject 属性集合的数据模型。我可以理解为什么这不包含在 Qt 库中(因为不可能以干净的方式公开所有 QMetaObject)但我希望我不必编写一堆数据模型和代理模型来显示 QObjects 的层次结构和属性。

【问题讨论】:

这听起来像是动态属性网格,对吧?就像在 qt 设计器中,它根据 QWidget 的每个子类类型分隔属性? 这肯定是一种用途。 【参考方案1】:

如果您代表QObjects 的树,那么QStandardItemModel 可能会满足您的需求。如果不是,您可能会继承它而不是 QAbstractItemModel

【讨论】:

终于有机会阅读文档和实验,看起来确实够好!

以上是关于QMetaObject 的 QAbstractItemModel,我必须自己写吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 QT 支持构建 OpenCV 时未解析的符号 QMetaObject

理解 QMetaObject :: invokeMethod 的参数 - QtQuick

QMetaObject 的 QAbstractItemModel,我必须自己写吗?

如何使用QMetaObject :: activate发出信号

Qt 静态函数QMetaObject::connectSlotsByName(QObject * object)

如果我从线程调用 QMetaObject::invokeMethod 到单音,调用是不是仍在该 qthread 中?