floating-point - QML 如何处理布尔不透明度值?
问题描述
我遇到了一些声明性的 QML 代码,这些代码通过使用布尔值来设置控件的不透明度:
opacity: index <= maxindex
现在这似乎可行,但我在 QML 文档中找不到任何内容,显示给定的布尔值与预期的实际值之间的隐式转换opacity
。
此页面涵盖了 QML 和 C++ 之间的基本类型和转换,但似乎没有详细说明 QML 本身内的布尔到实数的转换:
我假设它遵循与许多其他语言相同的“真为一,假为零”的心态,但我不确定。
我很可能最终将其更改为:
opacity: (index <= maxindex) ? 1 : 0
因为这更好地表明了意图,但我想知道隐式转换是否在任何地方都能得到保证。
解决方案
QJSValue的 Qt 文档请参阅ECMA-262 规范。
toNumber()
此类的方法应符合ECMA-262 的ToNumber。
Boolean : 如果参数为真,则返回 1。如果参数为假,则返回 +0。
所以,这样做应该是安全的。
推荐阅读
- java - WebSecurityConfiguration antMatcher() 在集成测试中不忽略外部 API 的特定 url
- reactjs - 无法设置未定义的属性“颜色”在 React 中出现此错误
- lossless-compression - 如何在 LosslessCut 中更改播放速度?
- sql - 了解 SQL 中表的结构/模式
- java - 在除一个之外的所有视图上放置阴影
- java - 为 javax.persistence.Persistence 获取 ClassNotFoundException 甚至认为我已经添加了所有 maven 依赖项
- django - Django:如何修复空蛞蝓?
- javascript - 如何按给定数量复制数组中的对象,ES6及更高版本
- android - 未处理的异常:'package:flutter/src/widgets/framework.dart':断言失败:'_debugCurrentBuildTarget == context':不正确
- c# - 在 MACOS 中将参数传递给“打开”命令