c++ - 如何获取类函数名称列表? Qt C++

标签 c++ qt class

例如我有这段代码:

class MyClass : public QObject
{
    Q_OBJECT
public:
    void MyClass()
    {
    QStringList selfFunctionList;
    //Get functions list
    qDebug()<<selfFunctionList;
    }
    void function1(){}
    void function435(){}
};

如何设置“function1”和“function435”的 selfFunctionList 列表?

最佳答案

您可以为此使用staticMetaObject

class Test : public QObject
{
    Q_OBJECT
public:
    explicit Test(QObject *parent = 0) :
        QObject(parent)
    {
        for (int n = 0; n < staticMetaObject.methodCount(); n++) {
           functions.append(QString::fromLocal8Bit(staticMetaObject.method(n).name()));
        }
        qDebug() << functions;
    }

signals:
    void testSignal();

private slots:   
    void privateTestFunction() {}

public slots:   
    void publicTestFunction() {}

private:
    QStringList functions;
};

一个条件,函数需要声明为槽或信号。

输出:

("destroyed","destroyed","objectNameChanged","deleteLater","_q_reregisterTimers",
"testSignal","privateTestFunction","publicTestFunction")

关于c++ - 如何获取类函数名称列表? Qt C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25166855/

相关文章:

qt - CMake 3.9现在可以在Visual Studio中创建“自动生成”项目吗?

c++ - 使用 Ajax 请求从 QWebView 读取本地文件

java - 如何在剪贴簿中定义类或导入类?

Java 内部类隐藏外部类

c++ - QT 小部件指针

c++ - 使用 SDL2 指定 OpenGL 版本

iphone - 为什么这个C++(cocos2d,box2d)例子给出的是指针而不是值?

c++ - Qt - Visual Studio 2010 的 Ui 访问冲突

c++ - 我可以使用函数符号 operator#() 来调用内置类型的运算符吗?

c++ - 对齐指针