在Qt中,可以使用QMetaObject類的createInstance()方法來根據類名創建對象。以下是一個簡單的示例代碼:
#include <QCoreApplication>
#include <QMetaObject>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
const QMetaObject *metaObject = QMetaObject::findClass("QObject");
if (metaObject) {
QObject *object = qobject_cast<QObject *>(metaObject->createInstance());
if (object) {
qDebug() << "Object created successfully.";
} else {
qDebug() << "Failed to create object.";
}
} else {
qDebug() << "Class not found.";
}
return app.exec();
}
在上面的示例中,我們使用QMetaObject::findClass()方法查找指定類名的元對象,然后調用createInstance()方法來創建對象。最后,我們通過qobject_cast將返回的指針轉換為QObject指針,以便進行操作。
請注意,要使用QMetaObject類,需要在.pro文件中添加QT += core。