QTableWidget — делегат выпадающего списка, как разрешить разные параметры для ячейки

Aloha

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

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

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

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

1

Решение

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

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]