2017-05-29 43 views
1

我想在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類設置數據的QTreeWidgetItemQTreeWidget

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

我已經試過Q_DECLARE_METATYPE(QIcon)/qRegisterMetaType<QIcon>("QIcon");但連接數據沒有運氣。有人可以展示如何使用它?

如何解決?提前致謝。

+1

錯誤提示'QList '未知,所以'qRegisterMetaType (「QIcon」)'應該如何幫助?它使元系統知道'QIcon'。爲'QList '嘗試'qRegisterMetaType'。 – Lorenz

+0

@洛倫茲 謝謝。有用。 – Cobra91151

回答

1

由於@Lorenz

我已經改變了代碼:qRegisterMetaType<QList<QIcon>>("QList<QIcon>");和現在的工作。

相關問題