QTableWidget - combobox делегат как да разреша различни опции на клетка

Алоха

Имам QTableWidget с две колони, които в момента използват ComboboxDelegate (моя подклас на QItemDelegate), за да представят опции на потребителя. Бих искал изборът в първата колона да повлияе на опциите, налични във втората, само за текущия ред.

Например имайте списък с автомобили в първата колона, а във втората списък с цветовете, които са налични за тази кола. Други редове за избор на различни автомобили и по този начин различни цветови възможности.

От това, което виждам, мога да задам само делегат на елемент на ред или колона, така че не мога да видя как да променя опциите в делегата на втората колона, без да засегна всички останали редове.

Това възможно ли е? Наистина бих искал да избегна преминаването към пълно разделяне на изглед/модел, тъй като вече имам доста код, разглеждащ този QTableWidget (и съм под напрежение)


person mike    schedule 10.10.2013    source източник


Отговори (1)


Ами за интересуващите се; Върнах се към моя подход преди делегиране, който беше да използвам QTableWidget::setItemWidget(), за да осигуря изпълним списък за всяка клетка.

Подкласирах qcombobox, за да взема препратка към таблицата, и свързах combobox CurrentIndexChanged със слот за актуализиране на данните от таблицата. (настройването на изпълним модул в клетка не засяга данните на изпълнимия модул на таблицата, освен ако не направите това).

Използването на пълен комбиниран списък като този е по-скъпо от itemdelegate, но моите таблици са много малки, така че мога да се размина с него. Изобразяването на комбинирания списък не е толкова хубаво, колкото делегата (комбобоксът се вижда през цялото време, вместо само по време на редактиране в случая на делегата), но с времето съм сигурен, че мога да подобря това.

person mike    schedule 10.10.2013