可以使用什么代替qRectf

  • 本文关键字:qRectf 可以使 c++ qt qt5
  • 更新时间 :
  • 英文 :


我是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)

可以通过将您的xy值作为QPointF

使用。
QRectF(
    QPointF(
        cos(angleUnit * i) * scale + xShift,
        sin(angleUnit * i) * scale + yShift
    ),
    buttonSize
)

另一方面:

QRectF(qreal x, qreal y, qreal width, qreal height)

可以通过将您的buttonSize作为withheight值来使用:

QRectF(
    cos(angleUnit * i) * scale + xShift,
    sin(angleUnit * i) * scale + yShift,
    buttonSize.width(),
    buttonSize.height()
)

相关内容

  • 没有找到相关文章

最新更新