Я пытаюсь добавить некоторые функции в старое приложение Qt4, и я новичок в Qt. Приложение использует ключевое слово foreach
, которое, как мне кажется, реализовано в Qt как . Однако все foreach
циклы в приложении запускаются только один раз, независимо от количества элементов, находящихся в контейнере.
Я добавил эту проверку работоспособности в приложение:
QString test("1234");
int i = 0;
foreach (QChar c, test) {
i++;
}
int stl = 0;
for (QString::iterator j = test.begin(); j != test.end(); j++) {
stl++;
}
qDebug()
<< "string:" << test
<< "size:" << test.size()
<< "foreach:" << i
<< "stl:" << stl
;
It всегда показывает это сообщение:
string: "1234" size: 4 foreach: 1 stl: 4
Я тестировал его с указанным выше QString
и с QModelIndexList
, и каждый раз он запускает l oop только один раз, даже если контейнер сообщает, что более одного элемента, и в обоих случаях l oop в стиле STL работает нормально, только foreach
выходит из l oop раньше.
Что я делаю не так? Приложение построено на Qt 4.8.7.