通过存储在字符串中的名称创建类的对象?

时间:2010-07-15 11:06:22

标签: c++ qt qt4

我可以通过提取存储在字符串中的类名来在运行时创建类的对象吗?

例如:我想创建和类QButton的对象,如

QString strClassName = "QButton";
QButton *pBtn = new strClassName();

我想读取所有控件的xml文件,并使用这种方式在运行时实例化它们。

2 个答案:

答案 0 :(得分:8)

也许您正在寻找QUiLoader提供的功能?

答案 1 :(得分:2)

一般情况下,您可能希望查看这些内容。正如另一张海报所指出的,这个功能存在于Qt中(至少)Qt类。

Generic factory in C++

Is there a way to instantiate objects from a string holding their class name?