LINUX.ORG.RU

QComboBox внутри QTableWidget и сигнал cellChanged()


0

0

Никто не сталкивался?

Дело в том, что как написано в манах по Qt сигнал cellChanged() посылается когда содержимое ячейки (QTableWidgetItem) изменилось. И это так. А вот когда в качестве ячейки указываешь QComboBox через setCellWidget() и выбираешь элемент комбо бокса, сигнал не посылается. Конечно, можно ловить сигналы от QComboBox, но это неудобно, поскольку неизвестно от какой именно ячейки они будут приходить.

Гугль нашел пример кода из скрибуса, но там нет ответа на мой вопрос (

Есть у кого идеи?

★★

В результате понял, что без отлова сигналов от QComboBox не обойтись. Сделал QMap<QComboBox QPair<int,int> >, в него заносится позиция виджета в таблице, после этого ловится currentIndexChanged(), в обработчике сигнала через QObject::sender() определяется пославший сигнал комбобокс и вызывается обработчик cellChanged() со значениями из позиции виджета в таблице из мэпа.

В скрибусе сделали тоже через QMap, но ловят не сигналы, а события (QEvent). По-моему так сложнее.

Спасибо за внимание.

octy ★★
() автор топика
Ответ на: комментарий от sanwashere

Да я думал про это, может завтра и попробую переделать, если так проще получится )).

octy ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.