Я переопределял QGraphicsView, чтобы сцена была увеличена с помощью события колеса мыши. Сцена содержит несколько QGraphicsPixmapItem. Колесные события звонят QGraphicsView :: scale (qreal sx, qreal sy)Сглаживание, не работающее в QGraphicsView
Все работает отлично, но рендеринг. Когда я уменьшаю масштаб (сцена становится меньше), появляется сглаживание. Я попытался установить рендер намеки следующим образом в повторной реализации QGraphicsView конструктор:
ImageViewer::ImageViewer(QWidget * parent) :
QGraphicsView(parent)
{
setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::HighQualityAntialiasing);
}
Я все еще вижу эти артефакты. Как я могу избавиться от этого?
Не можете опубликовать снимок экрана о том, что происходит? Вы устанавливаете какую-либо стратегию кэширования для элементов? – peppe
Спасибо @peppe! Я ничего не рассказываю о кешировании, поэтому я думаю, что это по умолчанию. Вот пример того, как он выглядит [до] (https://lh6.googleusercontent.com/-e2pH06jhy94/Ue09l8A1SWI/AAAAAAAAY08/YGa-wj9ollY/w958-h599-no/Fullscreen+capture+7222013+100003+AM.jpg) (Соотношение 1: 1 пикселей) и [после] (https://lh4.googleusercontent.com/-PZJVX0jl6yw/Ue09mo_Iu2I/AAAAAAAAY1E/nMf28uA9MlE/w958-h599-no/Fullscreen+capture+7222013+100007+AM.jpg) (менее 1: 1 пиксель). Вы увидите некоторое сглаживание в концентрических кругах. – Algo