Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml QdomeElement:设置布尔属性_Xml_Qt - Fatal编程技术网

Xml QdomeElement:设置布尔属性

Xml QdomeElement:设置布尔属性,xml,qt,Xml,Qt,QdomeElement没有此功能的原因是: void setAttribute(const QString & name, bool value); 我必须在代码中执行以下操作: element.setAttribute("boolean_attribute", this->booleanValue() ? "true" : "false"); 很糟糕,但我看不到其他选择…使用0和1而不是“true”和“false”。例如: if(e.attribute("v

QdomeElement没有此功能的原因是:

void setAttribute(const QString & name, bool value);
我必须在代码中执行以下操作:

element.setAttribute("boolean_attribute", this->booleanValue() ? "true" : "false");

很糟糕,但我看不到其他选择…

使用
0
1
而不是
“true”
“false”
。例如:

        if(e.attribute("value").toInt())
            qDebug() << "it is true";
        else
            qDebug() << "it is false";
if(如属性(“值”).toInt())
qDebug()如果查看xml的-

注意:布尔值的合法值为true、false、1(表示true)和0(表示false)


如果将该值设置为true、false和1都指示true,则可能会产生误导。我想正是由于这个原因,您提出的函数不存在,因此必须在此处隐式处理该值。

但这并不能回答问题,不是吗@不幸的是,我不明白。你认为用int代替strings不好吗?或者你的意思是我没有回答为什么QdomeElement没有这个bool函数?我的意思是它没有回答为什么这个函数不存在的问题,所以它更多的是一个注释而不是一个答案:@Merlin069我在web上用xml搜索了一些关于bool的东西。有人使用带有0和1的标记,我们讨论的是属性,有人使用“是”或“真”以及一个以上。我的假设是:
qdomeElement::attribute
返回
QString
,但是QString没有方法toBool,那么我们应该如何得到bool呢?也许这不是最好的解释,但似乎Qt不支持+1。我编辑了我的答案并添加了我的观点,但你的答案很好。让OP决定,“真、假和1都表示真”?从你所写的来看,似乎是真的,1表示是真的。例如,Qt可以选择像我的示例中那样编写“true”/“false”,并读取和解析所有可能的值:“true”、“false”、“1”、“0”。不是吗?如果函数参数接受字符串,如果您传入的不是“true”、“false”、“1”或“0”,它会做什么?