Название: Q*View (виджеты в делегате) Отправлено: Bepec от Октябрь 26, 2011, 14:09 Порыскал, почитал, но решил все же спросить.
Задача: имея модель с данными, вывести в каждой строке QListView layout с виджетами. Виджеты как то - пара кнопок, lineEdit, label. Соответственно со всем этим надо взаимодействовать и прочее. Вопрос: Как и как лучше реализовать: 1) засунуть в делегат виджеты (на каждую строку соответственно по 5-6 виджетов, и с ними работать) (не представляю как реализовать :( ) 2) отрисовывать изображения и соответственно обрабатывать нажатия, ввод, отжатия, вызовы. (понятно дело что это муторнее и страшнее (для тех же кнопок 2 состояния и прочая прочая) ) Тема похожая про то, что хочу реализовать - http://www.prog.org.ru/topic_19631_0.html;topicseen, но к сожалению ТС замолчал насчет исходников. PS буду рад любому простейшему примерчику... Название: Re: QListView + Delegat + widget's Отправлено: Bepec от Октябрь 27, 2011, 09:22 Up.
Summon знатоки, Онотоле, Пантер!!! Название: Re: QListView + Delegat + widget's Отправлено: Пантер от Октябрь 27, 2011, 09:52 Да все легко, делаешь свой класс от QWidget, накидываешь на него все, что тебе нужно, а в делегате просто его создаешь.
Название: Re: QListView + Delegat + widget's Отправлено: GreatSnake от Октябрь 27, 2011, 10:36 А чем не устроил QTreeWidget::setItemWidget() или QTableWidget::setCellWidget()?
Название: Re: QListView + Delegat + widget's Отправлено: Bepec от Октябрь 27, 2011, 10:51 Не устроил тем, что это treeWidget :)
PS увы не я решаю сейчас что и как, тут есть кому за меня думать. to Пантер - благодарю, сам что-то не додумался. Но возникает еще 1 вопрос: Если переопределять свой делегат, можно ли к примеру 2 ячейки под свой делегат (виджеты), а 2 к примеру оставить под стандартным? Или просто придется дернуть кусок кода из стандартного . Название: Re: QListView + Delegat + widget's Отправлено: Пантер от Октябрь 27, 2011, 10:53 В примере http://doc.qt.nokia.com/4.7/qabstractitemdelegate.html есть ответ на твой вопрос.
Название: Re: QListView + Delegat + widget's Отправлено: GreatSnake от Октябрь 27, 2011, 10:57 Не устроил тем, что это treeWidget :) Q*View нужно использоваться при больших объёмах данных.PS увы не я решаю сейчас что и как, тут есть кому за меня думать. В вашем случае использовать Q*Widget самое то, чтобы не изобретать велосипед. Название: Re: QListView + Delegat + widget's Отправлено: Bepec от Октябрь 27, 2011, 12:03 Благодарю за подсказку - в большем постараюсь быть внимательнее :) я этот пример просматривал уже раз 5-7 :)
to GreatSnake: В будущем я планирую большие объемы, но... хоть это будет и рабочая программа с определенной целью, первоочередное - научиться мне работать с моделями/view'ами/ делегатами. Опыт набирать то надо, пусть и через *опу :) Спасибо за быстрые и дельные ответы, тему закрываю. Название: Re: Q*View (виджеты в делегате) [РЕШЕНО] Отправлено: Bepec от Октябрь 27, 2011, 12:36 Update: чуть поторопился. Копаю
Название: Re: Q*View (виджеты в делегате) [РЕШЕНО] Отправлено: GreatSnake от Октябрь 27, 2011, 13:06 См. QAbstractItemView::setIndexWidget()
Название: Re: Q*View (виджеты в делегате) [РЕШЕНО] Отправлено: Bepec от Октябрь 27, 2011, 13:12 Благодарю за сею функцию, но ее я знаю :) Откопана с QTableWidget'a. Но в делегате предпочтительнее, ибо гибкость больше :)
Update: Проблема описанная в этой теме - http://www.prog.org.ru/topic_10688_0.html Вкратце - при 1 нажатии на любую из кнопок значение текущей строки = -1. Печально. Название: Re: Q*View (виджеты в делегате) [РЕШЕНО] Отправлено: kambala от Октябрь 27, 2011, 15:13 а почему в той теме используется 2 родителя а не один? типа первый - вьюпорт?
Название: Re: Q*View (виджеты в делегате) [РЕШЕНО] Отправлено: Bepec от Октябрь 27, 2011, 15:21 "первый родитель" QWidget(0x8fd028, name = "qt_scrollarea_viewport") " второй родитель " QTableView(0x8c9f20, name = "tableView")
Название: Re: Q*View (виджеты в делегате) [Старая болячка. ДОКТОРААА!!!] Отправлено: Bepec от Ноябрь 30, 2011, 12:38 Проблема осталась нерешенной. 3 сообщения выше.
|