我想获取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>");
,并且现在可以使用。