Название: три вопроса про QTableWidget::cellChanged() и еще один Отправлено: Гурман от Мая 24, 2010, 14:38 просто нет времени на эксперименты, кто уже делал, просьба ответьте да или нет:
1) выдается ли этот сигнал, если пользователь ушел из ячейки, не изменив ее значения? (нажал Esc) 2) выдается ли этот сигнал, если пользователь зашел в ячейку, и не изменяя значение нажал Enter? 3) выдается ли этот сигнал, если из таблицы удаляется или вставляется QTableWidgetItem? и еще связанный вопрос про QTableQidget: если, как во многих местах рекомендуется, перед загрузкой данных в таблицы заблокировать выдачу сигналов (чтобы cellChanged не сыпались бестолку) - не будут ли у таблицы заблокированы какие-либо полезные сигналы, используемые самим Qt, не нарушится ли работа таблицы? Название: Re: три вопроса про QTableWidget::cellChanged() и еще один Отправлено: bigirbis от Мая 24, 2010, 21:21 Очевидно, что данный сигнал испускается сразу после dataChanged. По сему - ответ на все 3 вопроса - "нет".
Как следствие - нет смысла блокировать данный сигнал при загрузке таблиц. P.S. Иногда вместо экспериментов сильно помогает чтение исходников. Название: Re: три вопроса про QTableWidget::cellChanged() и еще один Отправлено: Гурман от Мая 25, 2010, 08:38 ну насчет "нет смысла блокировать" - это не так, сигнал выдается при любых изменениях содержимого ячейки, в том числе, при ее первоначальной программной загрузке - поэтому совет блокировать написан во многих форумах для случая, когда надо отслеживать только изменения данных пользователем, а не программные
то, что сигнал действительно выдается при выполнении setItem(), это действительно так, я проверял отсюда можно предположить, что bigirbis сам с ячейками толком не работал... а на три вопроса ответ действительно "нет", проверка получилась быстрее, чем разбор чужих исходников ;) тему можно закрыть, может результат кому-то еще пригодится, время сэкономит |