【问题标题】:Is there a way of getting the classname of a QObject derived class without creating an instantiation of that class?有没有办法在不创建该类的实例化的情况下获取 QObject 派生类的类名?
【发布时间】:2013-03-26 11:15:30
【问题描述】:

我正在寻找这样的东西:

MyClass::metaObject()->className()

这不起作用,因为在执行此代码时,不存在 MyClass 的实例化。

如果这是可能的,有没有办法获取所有从 MyClass 派生的类的名称?

【问题讨论】:

    标签: c++ qt metaobject


    【解决方案1】:

    你应该可以使用:

    obj->metaObject()->className();
    

    【讨论】:

    • 这通过返回实际类的名称而不是基类的名称给了我想要的结果(与接受的答案相反)
    【解决方案2】:

    使用static meta object

     MyClass::staticMetaObject.className()
    

    有效!

    【讨论】:

    • @TomášZato 只需使用myClassInstance->staticMetaObject().className()
    • @TomášZato 实际上,您可能希望使用metaObject 而不是staticMetaObject 来获取有关对象的实际类型而不是指针类型的信息。
    猜你喜欢
    • 2015-07-19
    • 1970-01-01
    • 2011-01-21
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 2011-07-06
    • 2021-01-12
    相关资源
    最近更新 更多