Имеются объект. У объекта есть набор бинарных флагов. Флагов много (несколько десятков). У каждого флага есть код и описание.
В базе оно объявлено примерно так:
create table Objects( ObjectID integer PK, ....)
create table Flags(Code char(4) PK, Description varchar(100))
create table ObjectFlags(ObjectID integer, FlagCode char(4), PK(ObjectID, FlagCode) )
В классе описывающем объект я соответственно имею QStringList flags; поле в котором храню кода тех флагов которые взведены для объекта.
Спрашивается, как это лучше всего (и проще всего) организовать с точки зрения GUI? Чтобы юзер в диалоге видел список всех возможных флагов, и легко мог включать/выключать их а так же сортировать и искать нужный флаг.
Пока я это сделал через QTableWidget с тремя полями - Код, Описание и Да/Нет. Но вся обвязка этого выглядит ужасающе... Мне почему-то кажется что задача более-менее стандартная и для нее уже должны быть велосипеды.