我是Qt的初学者,我正在为我的项目开发GUI小部件应用程序。我从一个非常古老的项目中复制了代码,在编译项目时,我收到了这个错误:
错误:“:C2661:'QRectF :: QRectF':没有重载函数需要3个参数”
产生错误的代码是:
*animation -> setEndValue(
QRectF(
cos(angleUnit * i) * scale + xShift,
sin(angleUnit * i) * scale + yShift,
buttonSize
)
);
Qt文档反对使用QRectF
,因此在我的情况下,我可以使用哪些代替QRectF
?
答案 0 :(得分:3)
看看你的代码,它期待的是:
QRectF(qreal x, qreal y, QSizeF size)
的确,documentation of 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()
)