2016-06-02 13 views
-1

Ich verfolge Warnungen für Code bekommen:Qt Warnung: passing qreal zum Umwandeln QRect :: QRect (int, int, int, int)

QRect rct (0, 0, rect().width(), rect().height()); 

warning: passing `qreal' for converting 3 of `QRect::QRect(int, int, int, int)' 
warning: passing `qreal' for converting 4 of `QRect::QRect(int, int, int, int)' 

ich es gegoogelt, aber nicht viel gefunden. Wie vermeide ich diese Warnung?

Vielen Dank für Ihre Zeit.

+0

Warum brauchen Sie diese Linie? 'rect()' eines 'QWidget' sollte' x' und 'y' null haben. Oder was ist 'rect()'? – LogicStuff

+0

@LogicStuff, Danke für die Antwort, es wird weiter in 'QGradient g = QConicalGradient (QPoint (rct.center()), -angle);' und 'painter-> drawEllipse (rct);' verwendet, um einen Farbverlauf zu zeichnen. –

+0

'QPoint (rct.center())' ist ein weiterer Fall von überflüssiger (möglicher) temporärer Kopierkonstruktion. – LogicStuff

Antwort

2

Es scheint, dass rect() eine QRectF zurückgibt, und Sie möchten es in QRect konvertieren. Sie haben zwei Möglichkeiten:

+0

Ich weiß nicht, warum 'rect(). Width()' und 'rect(). Height()' verwendet wurden, löste das Problem durch 'integer constant'. Wie auch immer, danke für deine Zeit. –