Я определил QList <QPushButton*>
и хочу присвоить этот список QTableWidget
позже.Но главная проблема заключается именно в том, что когда я хочу удалить все элементы QList
, это вызывает у меня утечку памяти при использовании qDeleteAll()
:
// Add QPushButton* pointers to the QList
for (int i = 0; i < 5000; i++)
{
btnList.push_back(new QPushButton("delete"));
}
BTW, за исключением первого способа нажатияpointers, также я попробовал это:
// Add QPushButton* pointers to the QList with second approach
for (int i = 0; i < 5000; i++)
{
QPushButton *btn = new QPushButton("delete");
btnList.push_back(btn);
}
Я пробовал с двумя подходами к delete
указателям QList:
Использование метода takeAt
для получения указателяи delete
указатель:
for (int i = 0; i < 5000; i++)
{
delete btnList.takeAt(0);
}
btnList.clear();
Использование qDeleteAll
, затем clear
метод:
// Delete all items
qDeleteAll(btnList);
btnList.clear();
Ноутечка памяти все еще существует.Я использовал компилятор msvc2015
на Visual Studio
Также о моей проблеме я нашел эту ссылку, но она мне не помогла Эта ссылка