有没有理由说QDomElement没有这个功能:
void setAttribute(const QString & name, bool value);
我在代码中要做的事情就像:
element.setAttribute("boolean_attribute", this->booleanValue() ? "true" : "false");
可怕,但我看不到替代品......
答案 0 :(得分:1)
如果您查看x {的boolean data type,则说明: -
注意:布尔值的合法值为true,false,1(表示true)和0(表示false)。
如果将值设置为true,false和1都表示为true,则可能会产生误导。我希望由于这个原因你的建议函数不存在,所以必须在这里隐式处理这个值。
答案 1 :(得分:0)
使用0
和1
代替"true"
和"false"
。例如:
if(e.attribute("value").toInt())
qDebug() << "it is true";
else
qDebug() << "it is false";
用行显示正确的结果:
<Attribute value="0"/>
或<Attribute value="1"/>
我认为它比比较字符串更好。 setAttribute
支持int
。
编辑:
attribute()
返回QString
而QString
没有方法toBool
或类似的内容,因此提供支持编写bool
的方法毫无意义我们将来无法正确阅读。