Qt警告:正在传递用于转换QRect的qreal::QRect(int,int,int)
Qt warning: passing qreal for converting 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)'
我在谷歌上搜索了一下,但没有找到太多。如何避免此警告?
谢谢你抽出时间。
似乎rect()
返回一个QRectF
,并且您希望将其转换为QRect
。你有两个选择:
QRectF::toRect
(丢弃的小数部分)QRectF::toAlignedRect
(四舍五入)
我没有足够的声誉发表评论,所以我必须修改LogicStuff的回复。我们的答案对文件有不同的解释,所以请检查一下,如果我错了,我很乐意删除。
看起来rect()返回一个QRectF,并且您希望将其转换为QRect。你有两个选择:
- QRectF::toRect(四舍五入到最接近的整数)
- QRectF::toAlignedRect(边界框,包含所需QRectF的最小整数矩形)
toRect
例如,对于精确绘制看起来准确的
到对齐矩形
例如,为了确保在绘制某个东西时不会遗漏一行像素。
例如,二进制中的1/3是0.0101010101010101010101...
因此,根据你如何计算三分之一半,你可能会得到一半,表示为CCD_ 7或CCD_。如果你画了一个特征的边缘(以一种方式计算),而在使用另一种方式算出的矩形擦除石板时忽略了擦除一行像素,那将是不幸的。我的计算示例可能是错误的,但它只是为了说明问题。
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- int(c) 和 c-'0' 之间的区别。C++
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 是否可以从int转换为enum类类型
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 'short int'持有的值溢出,但"自动"不会溢出?
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 调用'begin(int [n])'没有匹配函数
- 没有显式声明的int[]中的foreach
- 在c++中访问int到类对象的映射时出错
- 为什么我无法更改"set<set>"循环中的值<int>
- 长 长 int 不要 长 int 好
- C++程序在循环后给出奇怪的int值
- 如何计算数据类型的范围,例如int
- 如果"new int"返回"int*",那么为什么"new int[n]"不返回"int**"?
- Qt警告:正在传递用于转换QRect的qreal::QRect(int,int,int)