我想在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);
并在QTreeWidgetItem
( QTreeWidget
)中的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>");
现在它工作。