Всем привет. Организовал поиск по элементам QListWidget - создал QLineEdit и при изменении текста в нем, ищу по списку полей! Если нету такого элемента то просто прячу.
fieldsTree - тот самый QListWidget.
C++ (Qt)
.....
connect(googleLine, SIGNAL(textChanged(QString)), fieldsTree, SLOT(selectFields(QString)));
........
C++ (Qt)
void QTreeCheckable::selectFields(QString text)
{
hideAll();
if (text.isEmpty()) {showAll();return;}
int countka = count();
for (int i = 0; i < countka; i++)
{
if (!item(i)->text().contains(text, Qt::CaseInsensitive)){
item(i)->setHidden(true);
}
else {
item(i)->setHidden(false);
}
}
}
void QTreeCheckable::hideAll()
{
for (int i = 0; i < count(); i++)
item(i)->setHidden(true);
}
Список полей - порядка 250. Стоит проскроллить его и попробовать ввести любую букву - вылетает ошибка.
Запускается D:\my_projects\QNewDbf\debug\QNewDbf.exe...
ASSERT failure in QVector<T>::at: "index out of range", file ..\..\include/QtCore/../../src/corelib/tools/qvector.h, line 338
D:\my_projects\QNewDbf\debug\QNewDbf.exe завершился с кодом 3
Никак не пойму причину. Подскажите пожалуйста. Заранее спасибо.