LINUX.ORG.RU

QListView и сложные виджеты вместо строк


0

0

Есть стандартная модель содержащая список структур с полями. Необходимо каждую структуру отображать в QListView не в виде строки и иконки, а в виде контейнера (скажем, Frame с лайаутом) с набором всяких виджетов (QLineEdit, QCheckBox и т.д.) внутри. Изменение значения в виджете должно передаваться в модель. Виджеты должны одинаково отображаться как для DisplayRole, так и для EditRole. Ну и чтобы не было никаких абсолютных значений height и width.

Делегаты здесь не подходят, т.к. paint() нарисует статическую картинку с неработоспособными виджетами. Создавать собственный View, наследуясь от соответствующего абстрактного класса, трудоемко: посмотрел реализацию QListView, уж очень много всего придется реализовывать заново с нуля. Может есть уже готовые примеры и работающие реализации, которые можно взять как основу? examples/itemviews/chart смотрел, не подходит. Нагуглить что-либо толковое не удалось. Спасибо

P.S. Либо переизобретать собственный каркас MV.

★★★

>paint() нарисует статическую картинку

Эммм... с чего бы вдруг? Через QApplication::style().drawControl() спокойненько рисуются виджеты.

lester_dev ★★★★★
()
Ответ на: комментарий от vertexua

>Наверное контролы надо не нарисовать, а надо чтобы они там были.

наверно надо почитать про QStyle и не больше таких заявлений.

lester_dev ★★★★★
()
Ответ на: комментарий от panter_dsd

бред. делегаты в случае ТС не позволят решить данную задачу.

anonymous
()

Тоже курил эту тему и не нашел решения, перевесил вставку контролов на createEditor.
Будет хорошее решение - отпишитесь, плиз.

Averrin
()

Толстота: А в нелюбимых здесь сильверлайтах и джавафксах это делается настолько тривиально, что описывается во втором параграфе туториала для нубов.

theos ★★★
()
Ответ на: комментарий от Averrin

>Тоже курил эту тему и не нашел решения, перевесил вставку контролов на createEditor. Будет хорошее решение - отпишитесь, плиз.

Решение уже есть, выше отписались про делегаты. Вот здесь есть инфа http://forum.vingrad.ru/forum/s/4c79ed978f68b45b010d61adbb004a6d/topic-264071...

lester_dev ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.