Q怪异行为(不要用负数更新屏幕)

QGraphicscene strange behavior (don't update screen with negative numbers)

本文关键字:更新 屏幕      更新时间:2023-10-16

我有一个QGraphicscene,它不会用负数更新屏幕。图片说明了一切。

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

原因可能是什么?

如果我正确解释了您的屏幕截图及其下面的文本,那么您使用的高度是负数。但是,这会创建一个无效的QRectF。引用Qt文件:

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

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

希望能有所帮助!