Название: Qt 4.4.1 - глюк при отрисовке полигонов ... Отправлено: mal от Сентябрь 17, 2008, 18:02 QGraphicsVeiw сделаны следующие настройки:
Код: view->setTransformationAnchor(QGraphicsView::AnchorUnderMouse); view унаследован от QGrraphicsView и переопределена отрисовка (за ради повышения её скорости ) Код: void CMyGraphicsView::paintEvent ( QPaintEvent * event ) Код: void CMyPolygonItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) И глюк вот такой - полки, т.е. горизонтальные линии рисуются очень тонкими, я бы сказал волосяными. Если, утрировано, толщина pen задана 5, то полки рисуются визуально с толщиной пера 1. Такой эффект проявляется как при маштабе 1:1, так и при увеличении (например к примеру толщина 10 тогда полки 2 ) :-\ Как с этим побороться? ??? ЗЫ Такой же глюк имеет место быть и для вертикальных полок (не написал сразу). тут вот Alex03 мне подсказывает мол "надо выложить код который можно собрать и потестить". Я то надеялся, что кто нибудь сталкивался с подобным. утрированый пример глюка во вложении: Название: Re: Qt 4.4.1 - глюк при отрисовке полигонов ... Отправлено: Alex03 от Сентябрь 19, 2008, 14:47 Код: //pen создан в конструкторе item'а И чё там в коде экстрасенсы сидят, которые догадываются что ты сам и где будешь рисовать, и какой толщиной пера? Да и в твоём случае когда линии у тя не перекрываются нахрена этот setClipRect() (он всё и обрезает)? А слабо setPen() сделать сразу для всего CMyPolygonItem() в конструкторе (QAbstractGraphicsShapeItem::setPen())? Ну и ИМХО не нужен тут GraphicsView, сначала из пушки по воробьям стрелять, а потом со скоростью бороться шайтановыми методами... А вот это зачем? Код: adjusted(-1,-1,1,1); Название: Re: Qt 4.4.1 - глюк при отрисовке полигонов ... Отправлено: mal от Сентябрь 19, 2008, 14:55 Дядя Саша - если ты помнишь тему, которую я поднимал по скорости отрисовки в которой говорилось типа мы рисуем куст?
(Ты то знаешь что я рисую, но сие неважно) Каждая ветка куста - это полигон. И у меня их туева хуча этих веток. И этот фрагмент сделан как раз чтобы при редактировании над ветками куста (по MouseMove скажем рисуется линия перекрывающая n-веток) не перерисовывалась куча веток полностью, у которых перекрываются bounding rect'ы. Вопщем сделал так потому что так надо. ЗЫ И нех ерничать по поводу кто что использует- задачи у всех разные... Название: Re: Qt 4.4.1 - глюк при отрисовке полигонов ... Отправлено: Alex03 от Сентябрь 19, 2008, 14:59 Вот и именно, весь остальной куст нарисовал растром и спи спокойно..
Название: Re: Qt 4.4.1 - глюк при отрисовке полигонов ... Отправлено: mal от Сентябрь 20, 2008, 07:11 Инсинуации Александра по поводу использования растра или view-scena обсуждать не будем. 8)
Тем не менее Александр натолкнул на решение: В перерисовке полигона делаем: Код: ... И все рисуется одинаково - красота. :) Спасибо Александер. ;) |