Qt如何将字符串转换为函数?

时间:2019-02-13 13:03:09

标签: c++ qt

是否可以将字符串(QString)从文字转换为函数并调用它?

例如,我有一个包含“ clicked”的字符串,我想将其转换为一个函数并调用它,例如:

eval("clicked")()

1 个答案:

答案 0 :(得分:1)

您当然可以:实际上,您有2个选择,

使用字符串,函数创建Map。并通过键获取值并调用它

或(稍微复杂一点)

方法必须是继承QObject类的类 并且方法是插槽或“可调用”功能,

,您需要使用

QMetaObject :: invokeMethod方法...

示例:

FOO::MyClass obj;
QMetaObject::invokeMethod(&obj, "foo", Qt::DirectConnection);