Есть кнопка delete при нажатии которой удаляется выделенная строка. Если в таблице больше одной строки, то проблем с удалением нету, однако когда остается последняя строка, то вылетает(см. фото ошибки). Вылетает именно на
ui.table->removeRow(oldRow);
причем при отладке oldRow = 0 и даже пытался вместо него вставить currentRow(), но возникает та же ошибка.
//Находим позицию удаляемой записи
int oldRow = ui.table->currentRow();
//Удаляем строку с записью из браузера
QTableWidgetItem *it;
it = ui.table->takeItem(oldRow, 0);
it = ui.table->takeItem(oldRow, 1);
delete it;
ui.table->removeRow(oldRow);
пробовал даже так
//Находим позицию удаляемой записи
int oldRow = ui.table->currentRow();
//Удаляем строку с записью из браузера
ui.table->removeRow(oldRow);
Решение заключается в следующем коде
if(oldRow==0 && count == 1)
//убираем выделение строки
ui.table->selectionModel()->clearSelection();
//удаляем строку
ui.table->removeRow(oldRow);
Дело в том что по какой-то причине, когда единственная строка в table выделена, то выдает ошибку при попытке ее удалить. Когда она не выделена, ошибок нет. Предполагаю что когда строка единственная выделена, то он ищет какую еще строку выделить и получает -1 что и выдает ошибку.
Не знаю, почему ваш вариант не работает, возможно, что на момент вызова removeRow
в таблице уже нет строк по каким-то причинам. Проверьте это в отладчике.
Если дело не в этом - должен сработать такой вариант:
if(ui.table->rowCount() <= 1)
ui.table->setRowCount(0);
else
ui.table->removeRow(ui.table->currentRow())
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу реализовать функцию избраное в бд RealmОпыта с ORM ранее не имел поэтому прошу извенить за вопрос
Пытаюсь распарсить wsdl в RPC/Encoding стиле с помощью утилиты h WSDL2Java от Apache Axis 14
Как в стек записать строки и вывести их в файл в обратном порядке на java?
При воспроизведению программы создается текстовый файл, в котором записываются сначала все данные о объектахПосле чего при нажатии на кнопку...