Название: QTableWidget изменение ячейки как различить Отправлено: qwyllum от Июнь 23, 2013, 14:46 Здравствуйте! С-но есть небольшая проблема. У меня имеются объекты на сцене и TableWidget, в котором записаны свойства выделенного объекта - координаты и имя.
Каждый раз, когда я перемещаю выделенный объект, я посылаю сигнал главному окну, чтобы в таблице изменились значения. Это работает прекрасно. Теперь мне нужно обратное - при изменении в таблице значения координаты, нужно передвинуть выделенный объект в заданную точку. И вот тут начинаются проблемы - Слот cellChanged срабатывает каждый раз при перемещении объекта и возвращает его в ту же точку. Пробовал вывести в отладку при перемещении значение координат выделенного объекта(1 столбец) и значение таблицы(2 столбец). Например, для координаты х: 283 283 284 283 284 284 284 284 285 284 Получается, что сперва изменяется координата объекта, но какого-то рожна в таблице остается старое значение. Поэтому координата x становится равной своему предыдущему значение, т.е. фактически не двигается Можно ли как-то отделить изменение таблицы программно от изменения пользователем? Т.е. если пользователь нажал на ячейку и изменил, то перемещаем объект. Заранее огромное спасибо! Название: Re: QTableWidget изменение ячейки как различить Отправлено: Kurles от Июнь 23, 2013, 16:16 Если я правильно понял проблему - всего то надо не дать сработать cellChanged(), т.е. перед перемещением вызвать метод QObject::blockSignals(bool block) c параметром true у того объекта, кто испускает сигнал cellChanged(), затем переместить, и снова вызвать QObject::blockSignals(bool block), но уже с параметром false.
|