Qt利用反射机制实现函数调用

本文介绍了QT强大的反射功能,阐述了如何通过函数名称字符串调用函数,需在被调用函数前添加宏Q_INVOKABLE。给出了父类和子类的头文件及源文件代码示例,还展示了main函数代码,最后说明了执行结果。

        QT本身就带有强大的反射功能,如果想通过函数名称字符串调用函数,需要在被调用的函数前添加宏:Q_INVOKABLE

父类 QtInvoke.h 头文件:

#pragma once

#include <QMainWindow>
#include "ui_QtInvoke.h"

class QtInvoke : public QMainWindow
{
    Q_OBJECT

public:
    QtInvoke(QWidget *parent = nullptr);
    ~QtInvoke();

    virtual Q_INVOKABLE void test();
    virtual Q_INVOKABLE int testAdd(int a, int b);

private:
    Ui::QtInvokeClass ui;
};

父类QtInvoke.cpp 文件

#include "QtInvoke.h"
#include <qdebug.h>

QtInvoke::QtInvoke(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
}

QtInvoke::~QtInvoke()
{}


Q_INVOKABLE void QtInvoke::test() {
    qDebug() << " QtInvoke::test()";
}

Q_INVOKAB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值