0

負の数で画面を更新しない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

原因は何でしょうか?

4

1 に答える 1

0

スクリーンショットとその下のテキストを正しく解釈すると、高さに負の数が使用されています。ただし、これにより無効なが作成されますQRectF。Qtドキュメントからの引用:

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

コードでは、サイズと幅が正であることを確認する必要があります。それ以外の場合は、コーナーポイントのx座標またはy座標、あるいはその両方を交換する必要があります。

お役に立てば幸いです。

于 2012-09-07T21:13:56.800 に答える