代码之家  ›  专栏  ›  技术社区  ›  Dewfy

qgraphicsItem取消选择重绘问题

  •  0
  • Dewfy  · 技术社区  · 15 年前

    非常简单的qt-gui应用程序:

    • 在场景中,我有多个圆实现为qgraphicsItem
    • 边界矩形返回正方形 这个圆。
    • 方法“shape”未被重写。

    在我添加的paint()方法中出现问题:

    if (isSelected()) {
        painter->drawRect(re);
    }
    

    选定内容绘制良好,但取消选定不会导致重绘。在日志级别,我可以看到该项确实丢失了选择标志。 从itemChange调用update()也是无用的。 事先谢谢你的任何建议。

    2 回复  |  直到 13 年前
        1
  •  0
  •   Dewfy    15 年前

    10天后,我回到这个问题,发现我的qgraphicsItem是用 setCacheMode(DeviceCoordinateCache); 天啊!愚蠢的错误是,当删除此行(默认情况下使用qgraphicsItem::nocache)时,选择会重新绘制良好。

        2
  •  0
  •   kleimola    14 年前

    您还可以尝试使用setViewPortUpdateMode(qGraphicsView::fullViewPortUpdate)将默认的qGraphicsView::minimalViewPortUpdate更改为fullViewPortUpdate;

    也可以从项目调用scene()->update();以计划重新绘制。

    至少在我不断更改项上的qgraphicsItem::itemHasNoContents标志时需要其中一个。

    推荐文章