Russian Qt Forum

Qt => Вопросы новичков => Тема начата: fisenkdima от Октябрь 31, 2012, 16:21



Название: Экземляр класса QTableWidget как проверить, пусто ли в ячейке?
Отправлено: fisenkdima от Октябрь 31, 2012, 16:21
Столкнулся со следующей проблемой:
На форме имеется таблица, являющаяся экземпляром класса QTableWidget.
Если в ее ячейки не вводились значения (в этом случае значения text не инициализированы?), то при попытке получить значение item(j,i)->text() любой из них программа крашится. Как проверить, пуста ли ячейка?
Какой-нибудь из вариантов ниже правилен?
Код:
if (ui->inputTable->item(j,i)->text().isEmpty()) qDebug()<<"пусто";
if (ui->inputTable->item(j,i)->text()==NULL) qDebug()<<"NULL";
if (ui->inputTable->item(j,i)->text().count()==0) qDebug()<<"count()=0";


Название: Re: Экземляр класса QTableWidget как проверить, пусто ли в ячейке?
Отправлено: mutineer от Октябрь 31, 2012, 16:22
ui->inputTable->item(j,i) == 0


Название: Re: Экземляр класса QTableWidget как проверить, пусто ли в ячейке?
Отправлено: fisenkdima от Октябрь 31, 2012, 16:27
Спасибо. Я проверил - заработало.
И, если не долго, вы не могли бы объяснить, почему мы проверяем значение item, а не text?


Название: Re: Экземляр класса QTableWidget как проверить, пусто ли в ячейке?
Отправлено: mutineer от Октябрь 31, 2012, 16:30
Цитировать
QTableWidgetItem * QTableWidget::item ( int row, int column ) const
Returns the item for the given row and column if one has been set; otherwise returns 0.

Потому что прежде всего item() может вернуть 0, если в ячейку ничего не установлено


Название: Re: Экземляр класса QTableWidget как проверить, пусто ли в ячейке?
Отправлено: fisenkdima от Октябрь 31, 2012, 16:31
Мда. Мне определенно надо учиться эффективно пользоваться документацией -_-