Russian Qt Forum
Ноябрь 27, 2024, 21:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: три вопроса про QTableWidget::cellChanged() и еще один  (Прочитано 3697 раз)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« : Май 24, 2010, 14:38 »

просто нет времени на эксперименты, кто уже делал, просьба ответьте да или нет:

1) выдается ли этот сигнал, если пользователь ушел из ячейки, не изменив ее значения? (нажал Esc)
2) выдается ли этот сигнал, если пользователь зашел в ячейку, и не изменяя значение нажал Enter?
3) выдается ли этот сигнал, если из таблицы удаляется или вставляется QTableWidgetItem?

и еще связанный вопрос про QTableQidget:

если, как во многих местах рекомендуется, перед загрузкой данных в таблицы заблокировать выдачу сигналов (чтобы cellChanged не сыпались бестолку) - не будут ли у таблицы заблокированы какие-либо полезные сигналы, используемые самим Qt, не нарушится ли работа таблицы?
Записан

2^7-1 == 127, задумайтесь...
bigirbis
Гость
« Ответ #1 : Май 24, 2010, 21:21 »

Очевидно, что данный сигнал испускается сразу после dataChanged. По сему - ответ на все 3 вопроса - "нет".
Как следствие - нет смысла блокировать данный сигнал при загрузке таблиц.
P.S. Иногда вместо экспериментов сильно помогает чтение исходников.
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #2 : Май 25, 2010, 08:38 »

ну насчет "нет смысла блокировать" - это не так, сигнал выдается при любых изменениях содержимого ячейки, в том числе, при ее первоначальной программной загрузке - поэтому совет блокировать написан во многих форумах для случая, когда надо отслеживать только изменения данных пользователем, а не программные

то, что сигнал действительно выдается при выполнении setItem(), это действительно так, я проверял

отсюда можно предположить, что bigirbis сам с ячейками толком не работал...

а на три вопроса ответ действительно "нет", проверка получилась быстрее, чем разбор чужих исходников  Подмигивающий

тему можно закрыть, может результат кому-то еще пригодится, время сэкономит
« Последнее редактирование: Май 25, 2010, 08:45 от Гурман » Записан

2^7-1 == 127, задумайтесь...
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.132 секунд. Запросов: 23.