QML 如何处理布尔不透明度值?
How does QML treat boolean opacity values?
我遇到了一些声明性 QML 代码,它们通过使用布尔值来设置控件的不透明度:
opacity: index <= maxindex
现在 似乎 可以工作,但我在 QML 文档中找不到任何显示给定布尔值与 opacity
期望的实际值之间的隐式转换的内容。
This page 涵盖了 QML 和 C++ 之间的基本类型和转换,但似乎没有详细说明 QML 本身内的布尔到实数的转换:
我假设它遵循与许多其他语言相同的"true is one, false is zero"心态,但我不确定。
我最终可能会将其更改为:
opacity: (index <= maxindex) ? 1 : 0
因为这更好地表明了 意图 但我想知道隐式转换是否真的在任何地方都得到保证。
QJSValue refer you to ECMA-262 specifications.
的 Qt 文档
toNumber()
这个 class 的方法应该符合 ECMA-262 的 ToNumber。
Boolean : If argument is true, return 1. If argument is false, return +0.
所以,这样做应该是安全的。
我遇到了一些声明性 QML 代码,它们通过使用布尔值来设置控件的不透明度:
opacity: index <= maxindex
现在 似乎 可以工作,但我在 QML 文档中找不到任何显示给定布尔值与 opacity
期望的实际值之间的隐式转换的内容。
This page 涵盖了 QML 和 C++ 之间的基本类型和转换,但似乎没有详细说明 QML 本身内的布尔到实数的转换:
我假设它遵循与许多其他语言相同的"true is one, false is zero"心态,但我不确定。
我最终可能会将其更改为:
opacity: (index <= maxindex) ? 1 : 0
因为这更好地表明了 意图 但我想知道隐式转换是否真的在任何地方都得到保证。
QJSValue refer you to ECMA-262 specifications.
的 Qt 文档toNumber()
这个 class 的方法应该符合 ECMA-262 的 ToNumber。
Boolean : If argument is true, return 1. If argument is false, return +0.
所以,这样做应该是安全的。