2013-10-10 5 views
1

AlohaQTableWidget - выпадающий Делегат Как разрешить различные варианты на клетку

У меня есть QTableWidget с двумя колонками, которые в настоящее время с помощью ComboboxDelegate (мой подкласс QItemDelegate) представить варианты пользователю. Я бы хотел, чтобы в первом столбце был выбран вариант, доступный во втором, только для текущей строки.

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

Из того, что я вижу, я могу установить делегат только для каждой строки или столбца, поэтому я не вижу, как изменить параметры в делегате второго столбца, не затрагивая все остальные строки.

Возможно ли это? Я бы очень хотел, чтобы избежать полного разделения представлений/моделей, поскольку у меня довольно много кода, который уже смотрел на этот QTableWidget (и я под давлением времени)

ответ

0

Хорошо для тех, кто заинтересован; Я вернулся к моему пред-делегатскому подходу, который должен был использовать QTableWidget :: setItemWidget() для предоставления виджета combobox для каждой ячейки.

Я подклассифицировал qcombobox, чтобы получить ссылку на таблицу, и связал combobox CurrentIndexChanged с слотом для обновления данных таблицы. (установка виджета в ячейке не влияет на данные таблицы, если вы этого не сделаете).

Использование полного combobox, как это дороже, чем itemdelegate, но мои таблицы очень маленькие, поэтому я могу уйти от него. Отрисовка combobox не так хороша, как делегат (поле со списком все время отображается, а не только во время редактирования в деле делегата), но со временем я уверен, что смогу улучшить это.