Название: Ошибка при удалении последней строки в QTableWidget Отправлено: Larry от Февраль 27, 2011, 18:15 Добрый вечер, форумчане!Возникла такая проблема...Есть QTableWidget в который добавляются или удаляются строки...все работает и все хорошо, но когда удаляю последнюю строку программа падает...не могу понять почему это происходит. Удаляю с помощью
Код: removeRow(int row) Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: maint от Февраль 27, 2011, 19:44 можно попробовать обрабатывать ошибку
Код: if(model->removeRow(row) == false){ Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: Larry от Февраль 27, 2011, 20:20 Хотел попробовать, но QTableWidget::removeRow(int row) ничего не возвращает,..к сожалению и не имеет метода lastError()...а жаль...Есть еще какие-нибудь варианты? Бьюсь уже второй день...пишет при падении:
Необработанное исключение в "0x004012fb" в "Telit.exe": 0xC0000005: Нарушение прав доступа при чтении "0x0000000c". Все уже проверил, но не нашел ничего... ??? Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: BRE от Февраль 27, 2011, 20:24 А какие сигналы от этого QTableWidget ты обрабатываешь?
Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: Larry от Февраль 27, 2011, 20:30 я обрабатываю пока только один
Код: itemSelectionChanged() Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: BRE от Февраль 27, 2011, 20:37 я обрабатываю пока только один А что внутри слота его обрабатывающего?Код: itemSelectionChanged() Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: Larry от Февраль 27, 2011, 20:52 Внутри слота вот это:
Код: int row = m_pListButtons->currentItem()->row(); Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: BRE от Февраль 27, 2011, 20:56 Тогда все нормально - падать должно. :)
Посмотри чему равно: Код при удалении последней строки и тебе станет все понятно. ;) Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: Larry от Февраль 27, 2011, 21:01 выдает -1,а почему :o...и как это обойти?
Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: BRE от Февраль 27, 2011, 21:04 Как -1? :o
Должен 0 выдавать. Проверь еще раз. Как это обойти.... Проверять и если 0, то ничего не делать. Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: trot от Февраль 27, 2011, 21:09 -1 - потому что ничего не выделено. Вы удалили выделенную строку, вот и -1. Поэтому нужно заботиться, после удаления, куда выставлять курсор, если вообще его куда-то надо выставлять.
Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: Larry от Февраль 27, 2011, 21:14 но проверку куда добавить? в слот где происходит выделение, тогда не получится, как раз на строке
Код: int row = m_pListButtons->currentItem()->row(); Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: Larry от Февраль 27, 2011, 21:16 я в слоте удаления делаю проверку на ноль и если ноль, тогда ничего не выделяю, но все равно падает
Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: BRE от Февраль 27, 2011, 21:18 но проверку куда добавить? в слот где происходит выделение, тогда не получится, как раз на строке Код: int row = m_pListButtons->currentItem()->row(); Код
или проще: Код
Название: Re: Ошибка при удалении последней строки в QTableWidget Отправлено: Larry от Февраль 27, 2011, 21:33 Спасибо большое, все работает и не падает...извините за тугодумость, просто уже второй день сижу, все сделал, а это не смог и даже не предполагал где ошибка...БОЛЬШОЕ-БОЛЬШОЕ спасибо...
|