QGraphicsscene奇怪的行为(不要用负数更新屏幕)

时间:2012-09-07 20:40:13

标签: c++ qt qgraphicsview

我有一个没有用负数更新屏幕的QGraphicsscene。图片解释了所有。

http://s16.postimage.org/4b59m8hx1/problem.jpg

这就是简单的代码。

if (dinA){ //assume its always true
      int sx=dinA->getX();
      int sy=dinA->getY();
      dis->scene.addRect(QRectF(300,100-sy, sx, sy),QPen(), QBrush(Qt::FDiagPattern));
 }

 //** 300,100-sy ** because of my work-area is 600*300

可能是什么原因?

1 个答案:

答案 0 :(得分:0)

如果我正确解释了您的屏幕截图及其下方的文字,则您使用的是负数。但是,这会产生无效的QRectF。引用Qt文档:

bool QRectF::isValid() const
[...]
A valid rectangle has a width() > 0 and height() > 0.

在您的代码中,您应确保大小和宽度为正。否则,您必须交换角点的x和/或y坐标。

希望有所帮助!