QListWidget 的 removeItemWidget(ui->ListWidget->currentItem()) 不可以删除选中的项目吗?

baidu_28726667 2017-07-20 02:47:28
void MainWindow::on_Remove_Button_clicked()
{
qDebug()<<ui->File_listWidget->currentItem()->text();
QList<QListWidgetItem*> list;
if(ui->File_listWidget->count() == 0)
{
qDebug()<<"没选中列表";
}
else
{
list = ui->File_listWidget->findItems(ui->File_listWidget->currentItem()->text(),Qt::MatchCaseSensitive);
QListWidgetItem* sel = list[0];
int r = ui->File_listWidget->row(sel);
QListWidgetItem* item = ui->File_listWidget->takeItem(r);
delete item;
/*
ui->File_listWidget->removeItemWidget(ui->File_listWidget->currentItem());

*/
}


选中一首歌曲后为什么不能只靠注释掉的那一行代码实现直接删掉呢? 后来删掉需要在多行代码实现,需要在item里面找出key, 然后找出第几行,才能删掉?

ui->File_listWidget->removeItemWidget(ui->File_listWidget->currentItem());
...全文
695 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
namezdd 2017-07-21
  • 打赏
  • 举报
回复
removeItemWidget是和setItemWidget对应的,比如ui->File_listWidget->setItemWidget(ui->File_listWidget->currentItem(),pushbutton);  就是在当前item上加一个按钮,removeItemWidget就是删掉这个按钮
baidu_28726667 2017-07-21
  • 打赏
  • 举报
回复
引用 1 楼 qqwangfan 的回复:
void QListWidget::removeItemWidget(QListWidgetItem * item) Removes the widget set on the given item. To remove an item (row) from the list entirely, either delete the item or use takeItem(). removeItemWidget这个函数只是把该项的窗口删除,并不会删除该项,因此要完全删除该项还是要用到 takeItem()
该项窗口指的是什么呢? 按照我图片里面来理解,我选择的就是 一个item吧。既然这没删除掉在上面显示,那执行removeItemWidget后究竟删除了什么窗口?! 因为removeItemWidget后,选中的文件还是可以播放
  • 打赏
  • 举报
回复
void QListWidget::removeItemWidget(QListWidgetItem * item) Removes the widget set on the given item. To remove an item (row) from the list entirely, either delete the item or use takeItem(). removeItemWidget这个函数只是把该项的窗口删除,并不会删除该项,因此要完全删除该项还是要用到 takeItem()

16,202

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧