qt - 抗锯齿在 QGraphicsView 中不起作用

标签 qt qgraphicsview antialiasing

我重新实现了QGraphicsView,以通过鼠标滚轮事件缩放场景。该场景包含多个QGraphicsPixmapItem。滚轮事件调用QGraphicsView::scale(qreal sx, qreal sy)

除了渲染之外,一切都很完美。当我缩小(场景变小)时,会出现锯齿。我尝试在重新实现的 QGraphicsView 构造函数中设置渲染提示,如下所示:

ImageViewer::ImageViewer(QWidget * parent) :
  QGraphicsView(parent)
{
   setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::HighQualityAntialiasing);
}

我仍然看到这些文物。我怎样才能摆脱这个?

最佳答案

请参阅我对 this question 的评论.

基本上,您必须在要应用抗锯齿功能的 QGraphicsPixmapItem 上调用 setTransformationMode(Qt::SmoothTransformation)

在 View 上调用 setRenderHints 对我来说也不起作用。

关于qt - 抗锯齿在 QGraphicsView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17734290/

相关文章:

qt - Qt 和 JavaFX 等硬件加速工具包如何实现高质量字体渲染?

c++ - 如何更改QGraphicsRectItem的颜色

qt - 为什么我的线宽在具有相同 QPen 宽度的 QGraphicsScene 中看起来不同?

linux - 指数频率轴的 FFTW

c++ - 在对象检查器中显示自定义类型的值

c++ - 从qt中的另一个线程运行qtconcurrent时如何关闭程序

c++ - WPD API - 无法从设备传输内容(包括 SSCCE)

python - Pyside2 我怎样才能移动盒子?

graphics - 抗锯齿和 Gamma 补偿

opengl - 高级摩尔纹,HLSL/GLSL 程序纹理着色器中的图案减少 - 抗锯齿