C2451:'QString'类型的条件表达式是非法的

时间:2017-01-12 16:33:38

标签: c++ qt while-loop

使用QDirIterator时遇到问题。我需要从文件夹中读取子目录,所以我将QString作为参数传递给QDirIterator。但是当我打电话给“while”时它会给我这个错误: C2451:'QString'类型的条件表达式是非法的

QDirIterator iter4(directory, QDirIterator::Subdirectories);

while(iter4.next()){
}

有人有任何解释吗?我正在使用基于Qt 5.7.1的Qt Creator 4.2.0。

感谢您的关注和帮助。

1 个答案:

答案 0 :(得分:0)

错误意味着它所说的内容。显然,QStringbool无法进行转换。正确的用法是

while(iter4.hasNext()){
    //...
}

另见here。有时它真的有助于rtfm;)