首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt警告:传递QRect以转换QRect::QRect(int,int)

Qt警告:传递QRect以转换QRect::QRect(int,int)
EN

Stack Overflow用户
提问于 2016-06-02 07:02:15
回答 2查看 1.6K关注 0票数 1

我收到关于代码的以下警告:

代码语言:javascript
复制
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)'

我在谷歌上搜索过,但没找到多少。如何避免这一警告?

谢谢你抽出时间。

EN

回答 2

Stack Overflow用户

发布于 2016-06-02 07:25:16

rect()似乎返回一个QRectF,您希望将它转换为QRect。你有两个选择:

  • QRectF::toRect (废弃十进制部分)
  • QRectF::toAlignedRect (圆角)
票数 2
EN

Stack Overflow用户

发布于 2022-06-22 15:12:32

我没有足够的声誉来评论,所以我将不得不核实LogicStuff的回复。我们的答案对文件有不同的解释,所以请自己检查一下,如果我错了,我很乐意删除。

rect()似乎返回一个QRectF,您希望将它转换为QRect。你有两个选择:

  • QRectF::toRect (四舍五入至最近整数)
  • QRectF::toAlignedRect (边界框,包含所需QRectF的最小整数矩形)。

toRect

例如,对于精确绘图,看上去很精确的东西

toAlignedRect

例如,确保你在画东西时不漏掉一条像素线。

例如,二进制文件中的1/3是0.0101010101010101010101...,因此根据计算方式的不同,您可以得到一半,表示为0.10000000000000000...0.0111111111111...,并可能将其舍入计算一种方式,然后向下计算另一种方式。如果你画了一个特征的边缘(用一种方法计算),而忽略了在用另一种方法擦除板子时擦除一行像素,那就太不幸了。我的计算例子可能是错误的,但它只是为了说明。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37584813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档