【发布时间】:2017-02-03 15:59:08
【问题描述】:
Qt 的元对象系统允许进行很多有趣的内省。但我的问题如下:假设我编写了class MyClass : public QObject。我想在我的 GUI 中有一个按钮来创建MyClass 的实例。但我决定创建MySubClass : public MyClass 并创建另一个按钮来创建MySubClass 的实例。
现在一位同事也创建了自己的子类。有没有办法自动找出所有扩展 MyClass 的类(并自动添加相关按钮)?
我可以看到一些解决方法,比如有一个 MetaObject 数组,这样我就可以在每个数组上调用 QMetaObject::newInstance(),但是每次将新的子类添加到代码库时,我都需要手动添加子类。
有自动的方法吗?如果需要,我可以限制自己使用实现特定 Q_INTERFACE 的类,如果它有任何区别的话。
【问题讨论】:
-
我问这个问题是因为我知道我可以用 Java 做到这一点
标签: c++ qt introspection moc