Не удаляется последняя строка в QTableWidget

239
15 января 2018, 08:58

Есть кнопка 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);        

Answer 1

Решение заключается в следующем коде

if(oldRow==0 && count == 1)
    //убираем выделение строки
    ui.table->selectionModel()->clearSelection();
//удаляем строку
ui.table->removeRow(oldRow);

Дело в том что по какой-то причине, когда единственная строка в table выделена, то выдает ошибку при попытке ее удалить. Когда она не выделена, ошибок нет. Предполагаю что когда строка единственная выделена, то он ищет какую еще строку выделить и получает -1 что и выдает ошибку.

Answer 2

Не знаю, почему ваш вариант не работает, возможно, что на момент вызова removeRow в таблице уже нет строк по каким-то причинам. Проверьте это в отладчике.

Если дело не в этом - должен сработать такой вариант:

if(ui.table->rowCount() <= 1)
  ui.table->setRowCount(0);
else
  ui.table->removeRow(ui.table->currentRow())
READ ALSO
Работа с Realm в ViewHolder

Работа с Realm в ViewHolder

Не могу реализовать функцию избраное в бд RealmОпыта с ORM ранее не имел поэтому прошу извенить за вопрос

195
org.apache.axis.wsdl.toJava.DuplicateFileException: Duplicate file name

org.apache.axis.wsdl.toJava.DuplicateFileException: Duplicate file name

Пытаюсь распарсить wsdl в RPC/Encoding стиле с помощью утилиты h WSDL2Java от Apache Axis 14

216
Работа со строками и файлами

Работа со строками и файлами

Как в стек записать строки и вывести их в файл в обратном порядке на java?

252
Не получается выписать нужные данные из всех объектов одного класса в текстовый документ

Не получается выписать нужные данные из всех объектов одного класса в текстовый документ

При воспроизведению программы создается текстовый файл, в котором записываются сначала все данные о объектахПосле чего при нажатии на кнопку...

293