要删除QListWidget中选中的item,你可以使用QListWidget的removeItemWidget()方法。以下是一个示例代码:
#include <QApplication>
#include <QListWidget>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QListWidget listWidget;
QPushButton deleteButton("删除选中项");
// 添加一些示例item到列表
for (int i = 0; i < 5; ++i) {
QListWidgetItem *item = new QListWidgetItem(QString("Item %1").arg(i));
listWidget.addItem(item);
}
QObject::connect(&deleteButton, &QPushButton::clicked, [&listWidget]() {
QList<QListWidgetItem*> selectedItems = listWidget.selectedItems();
foreach(QListWidgetItem* item, selectedItems) {
int row = listWidget.row(item);
if (row >= 0) {
listWidget.takeItem(row);
delete item;
}
}
});
// 创建一个窗口并显示
QWidget window;
QVBoxLayout layout(&window);
layout.addWidget(&listWidget);
layout.addWidget(&deleteButton);
window.show();
return app.exec();
}
在这个示例中,我们创建了一个QListWidget用于显示列表,并添加了一些示例item。然后,我们创建了一个QPushButton作为删除按钮。
当用户点击删除按钮时,我们通过selectedItems()方法获取选中的所有item,并遍历这些item。使用takeItem()方法从列表中移除该行,并使用delete操作符释放内存。
请运行代码,选择一些项,然后点击“删除选中项”按钮来删除选中的项。
内容由零声教学AI助手提供,问题来源于学员提问