Qt QListWidget clear()、takeItem()、removeItemWidget()删除项
2023-12-21 12:55:53
1.clear() 用来清理所有的QListWidgetItem项,释放所有项的QListWidgetItem对象内存?
2.takeItem()?takeItem(int row)只清理第row项,不释放第row项的QListWidgetItem对象内存
3.removeItemWidget需要知道删除的Item的对象,但后面需要delete Item的对象才能删除这个Item这个项和释放内存。
示例代码:
QStringList strList = { "Item1", "Item2", "Item3", "Item4", "Item5" };
ui->listWidget->addItems(strList);
qDebug() << "111 count == " << ui->listWidget->count();
//Qt中QListWidget中删除item的方法2
QListWidgetItem * listItem = ui->listWidget->takeItem(2);
qDebug() << "111 listItem == " << listItem;
if(listItem )
{
delete listItem;
listItem = nullptr;
}
qDebug() << "222 count == " << ui->listWidget->count();
//Qt中QListWidget中删除item的方法0 //注意:上面删除了一个Item后,删除的Item后面全部Item的index都会发生变化。
QListWidgetItem *pItem = ui->listWidget->item(0);
ui->listWidget->removeItemWidget(pItem);
qDebug() << "333 count == " << ui->listWidget->count();
qDebug() << "111 pItem == " << pItem;
if(pItem )
{
delete pItem;
pItem = nullptr;
}
qDebug() << "444 count == " << ui->listWidget->count();
ui->listWidget->clear();
qDebug() << "555 count == " << ui->listWidget->count();
结果:
参考:Qt QListWidget通过clear()和takeItem(int row)清除列表项_qlistwidget takeitem-CSDN博客
Qt学习之QListWidget删除Item_qt removeitem-CSDN博客
如果深入了解removeItemWidget() 可以参考:QWidgetList删除选中项 - kuikuitage - 博客园 (cnblogs.com)
文章来源:https://blog.csdn.net/m0_63893772/article/details/135126827
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!