我是QT的初学者,我正在为项目开发GUI小部件应用程序。我从一个非常旧的项目中复制了代码,并且在编译我的项目时,我会收到此错误:
错误:":c2661:'qRectf :: qRectf':没有超载函数获取3个参数"
生成错误的代码为:
*animation -> setEndValue(
QRectF(
cos(angleUnit * i) * scale + xShift,
sin(angleUnit * i) * scale + yShift,
buttonSize
)
);
QT文档反对使用QRectF
,因此在我的情况下,我可以使用什么而不是QRectF
?
查看您的代码,它的期望是:
QRectF(qreal x, qreal y, QSizeF size)
的确,QRectF
的文档中没有此类构造函数。但是,您可以使用现有的构造函数之一:
QRectF(const QPointF &topLeft, const QSizeF &size)
可以通过将您的x
和y
值作为QPointF
:
QRectF(
QPointF(
cos(angleUnit * i) * scale + xShift,
sin(angleUnit * i) * scale + yShift
),
buttonSize
)
另一方面:
QRectF(qreal x, qreal y, qreal width, qreal height)
可以通过将您的buttonSize
作为with
和height
值来使用:
QRectF(
cos(angleUnit * i) * scale + xShift,
sin(angleUnit * i) * scale + yShift,
buttonSize.width(),
buttonSize.height()
)