Aloha
У меня есть QTableWidget с двумя столбцами, которые в настоящее время используют ComboboxDelegate (мой подкласс QItemDelegate) для представления параметров пользователю. Я хотел бы, чтобы выбор в первом столбце влиял на параметры, доступные во втором, только для текущей строки.
Например, в первом столбце есть список автомобилей, а во втором — список цветов, доступных для этого автомобиля. Другие ряды, чтобы выбрать разные автомобили и, следовательно, разные варианты цвета.
Из того, что я вижу, я могу установить делегат элемента только для строки или столбца, поэтому не вижу, как изменить параметры в делегате второго столбца, не затрагивая все остальные строки.
Это возможно? Я действительно хотел бы избежать перехода к полному представлению / разделению модели, так как у меня есть довольно много кода, уже смотрящего на этот QTableWidget (и я испытываю нехватку времени)
Хорошо для тех, кто заинтересован; Я вернулся к своему подходу перед делегатом, который заключался в использовании QTableWidget :: setItemWidget () для предоставления виджета комбинированного списка для каждой ячейки.
Я вложил в подкласс qcombobox, чтобы получить ссылку на таблицу, и соединил комбинированный список CurrentIndexChanged со слотом для обновления данных таблицы.
(установка виджета в ячейку не влияет на данные табличного виджета, если вы не сделаете этого).
Использование полного комбинированного списка, такого как этот, обходится дороже, чем предметного легата, но мои столы очень маленькие, поэтому я могу с этим справиться. Визуализация комбинированного списка не так хороша, как делегат (комбинированный список виден постоянно, а не только во время редактирования в случае делегата), но со временем я уверен, что смогу улучшить это.
Других решений пока нет …