问题与获取应用程序的图标

我想在Windows上获取所有安装的应用程序(使用registry)的图标。 问题是:

QObject::connect: Cannot queue arguments of type 'QList<QIcon>' (Make sure 'QList<QIcon>' is registered using qRegisterMetaType().) 

我正在连接Worker类的数据

 QThread *programsThread = new QThread(); Worker *programsWorker = new Worker(); programsWorker->moveToThread(programsThread); connect(programsWorker, &Worker::appData, this, &Test::setAppData); QList<QIcon> programIcons; emit appData(programIcons, displayNames, displayVersions, publishers, installLocation, uninstallLocations); 

并在QTreeWidgetItemQTreeWidget )中的Test class setting数据中,

 void setAppData(QList<QIcon> icons, QStringList names, QStringList versions, QStringList publishers, QString installLocation, QStringList uninstallLocations); 

我试过Q_DECLARE_METATYPE(QIcon)/qRegisterMetaType<QIcon>("QIcon"); 但没有运气。 有人可以显示如何使用它?

如何解决它? 提前致谢。

感谢@洛伦兹

我已经将代码更改为: qRegisterMetaType<QList<QIcon>>("QList<QIcon>"); 现在它工作。