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

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);

Test中的QTreeWidgetItem类设置数据(QTreeWidget)
void setAppData(QList<QIcon> icons, QStringList names, QStringList versions, QStringList publishers, QString installLocation, QStringList uninstallLocations);

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

如何解决?提前致谢。

最佳答案

感谢@Lorenz

我已将代码更改为:qRegisterMetaType<QList<QIcon>>("QList<QIcon>");,并且现在可以使用。

07-24 09:23