gpt4 book ai didi

c++ - 从 QTablewidget 中删除所选项目时崩溃

转载 作者:行者123 更新时间:2023-11-30 03:04:11 25 4
gpt4 key购买 nike

我有一个具有以下设置的 QTablewidget

tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);

我正在尝试删除用户选择的行并使用以下代码。但是,当所有项目都被选中和删除时,它会导致崩溃。以下方法是否正确?谢谢。

tableWidget->setSortingEnabled(false);
QList<QTableWidgetItem *> selectedEntries = tableWidget->selectedItems();
foreach(QTableWidgetItem * currentItem, selectedEntries)

{
if (currentItem->row()!=-1)
tableWidget->removeRow(currentItem->row());

}
tableWidget->setSortingEnabled(true);

最佳答案

可以在 Nokia dev forums 中找到此操作的稍微不同的风格。 , Ruzik 提供的进化形式看起来像..

 QSet<int> selectedRows; //we use a set to prevent doubles
QList<QTableWidgetItem*> itemList = tableWidget->selectedItems();
QTableWidgetItem * item;
foreach(item, itemList)
selectedRows.insert(item->row());
//get a list, and sort it big to small
QList<int> rows = selectedRows.toList();
qSort(rows.begin(), rows.end());
//now actually do the removing:
foreach(int row, rows)
tableWidget->removeRow(row);

关于c++ - 从 QTablewidget 中删除所选项目时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8845069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com