我开始使用 Qt,但遇到了一个大问题:我实现了从 QAbstractListModel 类继承的自定义模型。我想要做的是显示一个带有图标的列表。一切正常,图像与我的代码一起显示,但它会造成内存泄漏。如果我不返回图标,则不会检测到内存泄漏。
class MyModel : public QAbstractListModel
{
public:
...
private:
QIcon myicon;
}
QVariant MyModel::data(const QModelIndex &index, int role) const
{
...
if (role == Qt::DecorationRole)
{
return this->myicon;
}
...
}
编辑 1
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
MyModel::MyModel(...)
{
...
ui.listWidget->addItem(new QListWidgetItem(QIcon("myicon"), "my text"));
}