Название: как нарисовать рамку у QListView ? Отправлено: izoomer от Декабрь 19, 2006, 16:18 Пробую так рисовать на QListView
Код:
а все итемы перекрываются хотя прокрутка работает и видно что итемы там есть (за прямоугольником моим) как рисовать на фоне за итемами ? Название: как нарисовать рамку у QListView ? Отправлено: Alexandr Az от Декабрь 19, 2006, 16:56 Расскажи зачем save вызываешь.....
Ну а чего они должны быть видны то, где они у тебя рисуются? Я не вижу. Отселя вывод - пусть рисуются с базового класса, тобишь вызови QListView::paintEvent(event). Либо я полностью не вкурил твой вопрос................... Название: как нарисовать рамку у QListView ? Отправлено: izoomer от Декабрь 19, 2006, 17:36 да, это я как начинающий туплю ....
делаю так Код:
рисуются и итемы мои и "прямоугольник мой"-и вижу где то в углу непонятный кусочек синего цвета (видать какие то остатки моего ректангла). Причем он прокручивается вместе со списком моим, а мне то нужно заменить тот бардюр стандартный которы у QListViev на мою рамку . Что не так ? Заранее прошу прощения за банальные вопросы. Название: как нарисовать рамку у QListView ? Отправлено: Alexandr Az от Декабрь 19, 2006, 17:54 Какой бардюр то, который обрамляет то сам виджет? Так ты его здесь (в этом методе) не перерисуешь
Название: как нарисовать рамку у QListView ? Отправлено: izoomer от Декабрь 19, 2006, 20:00 а как же быть ?!
добавлено спустя 1 минуту: можно ли как то убрать этот бардюр и рисовать уже свои в видимой области (тем более у меня нет скроллбара в моем виевере) добавлено спустя 1 час 52 минуты: если при таком коде Код:
мы получаем rect от QWidget . Текст отображается, но прокручивается вместе со списком. Я так понимаю что нужно рисовать на паинтере не от QAbstractItemView, получаемом посредством QPainter painter(viewport()) а использовать painter от родителя ( QFrame или QWidget ) подсажите - как получить painter от родителя в моем случае? Название: как нарисовать рамку у QListView ? Отправлено: Alexandr Az от Декабрь 20, 2006, 11:03 Как по мне (могу ошибаться) - то никак.
Получить паинтер от родителя - мона. но он аботать не будет, защищено спецом. гы. Получить мона так QPainter paint(this). Вьюпорт спецом сделан - чтобы ты мог рисовать токи в области скролинга (точнее получать эту область). Вотс. (грубо, неверно, но доходчиво). Метод drawFrame, гы, не есть виртуальный, так что в пролёте, тем более его abstractScrollArea нагло его игнорирует. Во всем этом я могу жутко ошибатся конечно, но навряд. Вообще надо проще делать все. Как по мне - я бы сделал так: Запретил рисование какой либо рамки (простым выставлением проперти соответствующих) у QFrame, а твой лист воткнул бы на любой созданый виджет, который не наследуется от scrollArea и рисовал бы на нём что хотел. Хотя проще конечно сказать, чем сделать........ Если найдёшь как достучатся до рамки у потомков scrollArea свиснешь, самому интересно............. Название: как нарисовать рамку у QListView ? Отправлено: izoomer от Декабрь 20, 2006, 14:50 та наверно так и сделаю - покладу на виджет и на виджетет нарусую все что надо .... до рамки потом буду достукиваться :-)
хотя получилось так сделать ..... Код:
установив перед этим для этого виджета Код:
а делегаты рисую с отступами с учетом толщины рамки. ДУмаю все таки будет лучше на виджет положить другой и рисовать на нем все что надо. Мне бы теперь сделать список свой от QAbstractItemView. Нет ли у кого примеров (chart не предлагать из примеров)? Например есть список из восьми итемов вот хотелось быб что бы выглядело так в приложении : --------------------------- | item_7 ...........................| | item_8 ...........................| |--------------------------| | item_1 ............................| |--------------------------| | item_2 ............................| | item_3 ............................| ---------------------------| и по кругу при навигации список крутился и выделенный итем по высоте выше остальных ? Вот как такое сделать ? |