2017-01-12 3 views
-1

Ich habe ein Problem bei der Verwendung von QDirIterator. Ich muss die Unterverzeichnisse von einem Ordner lesen, also übergebe ich einen QString an QDirIterator als Parameter. Aber wenn ich nennen „während“ es mir diesen Fehler gibt: C2451: bedingter Ausdruck vom Typ ‚QString‘ ist illegalC2451: bedingter Ausdruck vom Typ 'QString' ist ungültig

QDirIterator iter4(directory, QDirIterator::Subdirectories); 

while(iter4.next()){ 
} 

Wer noch keine Erklärung hat? Ich verwende Qt Creator 4.2.0 basierend auf Qt 5.7.1.

Danke für die Aufmerksamkeit und Hilfe.

+0

scheint, als gäbe es keine Konvertierung von 'QString' zu' bool', was meinst du eigentlich mit 'while (iter4.next())'? Es sollte laufen, während es mehr Subdirects gibt? – user463035818

+0

Seltsam, weil ich schon so etwas in einem anderen Programm benutzt habe und es funktioniert ... – GDias

+0

kann es sein, dass es im anderen Programm ein Zeiger auf einen 'QString' war? Zeiger können immer als Bedingung verwendet werden – user463035818

Antwort

0

Der Fehler bedeutet genau das, was er sagt. Anscheinend gibt es keine Umwandlung von QString zu bool. Die korrekte Verwendung wäre

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

Siehe auch here. Manchmal hilft es wirklich rtfm;)

Verwandte Themen