抗锯齿不能在QGraphicsView中工作

时间:2013-07-18 21:31:24

标签: qt antialiasing qgraphicsview aliasing

我重新实现 QGraphicsView ,让场景使用鼠标滚轮事件进行缩放。该场景包含几个 QGraphicsPixmapItem 。 wheel事件调用 QGraphicsView :: scale(qreal sx,qreal sy)

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

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

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

2 个答案:

答案 0 :(得分:5)

请参阅我对this question的评论。

基本上,您必须在要申请抗锯齿功能的setTransformationMode(Qt::SmoothTransformation)上致电QGraphicsItem

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

答案 1 :(得分:0)

仅在设置使用画家的情况下才应用渲染提示。这里是一个片段:

Write Defaults