查看完整版本: [-- QT中的反射,如何反射取得私成成员和变量 --]

QTCN开发网 -> Qt基础编程 -> QT中的反射,如何反射取得私成成员和变量 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

jerrybaxia 2020-12-03 17:11

QT中的反射,如何反射取得私成成员和变量

  1. QWidget *p = static_cast<QWidget *>(this);
        const QMetaObject *metaObj = p->metaObject();
        int propertyCnt = metaObj->propertyCount();
        for ( int i = 0; i < propertyCnt; ++ i ) {
            QMetaProperty oneProperty = metaObj->property( i );
            qDebug() << " name: " << oneProperty.name() << " type: " << QVariant::typeToName( oneProperty.type()) << "\n";
        }

        //2.遍历类的函数成员
        int methodCnt = metaObj->methodCount();
        for ( int idx = 0; idx < methodCnt; ++ idx ) {
            QMetaMethod oneMethod = metaObj->method( idx );
            qDebug() << oneMethod.access() << " name: " << oneMethod.name()
                     << " typeName: " << oneMethod.typeName()
                     << " methodType: " << oneMethod.methodType() << "\n";
        }

用以上方法没有办法获取得到 private 的私有变量和私有方法
那有哪个方法,可以获取我的一个类的私有变量和私有方法呢?
谢谢

lieber 2020-12-03 18:54
写成友元函数行嘛。。。


查看完整版本: [-- QT中的反射,如何反射取得私成成员和变量 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled