| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Ошибка в QComboBox |
| Автор: OlegIT 7.2.2014, 08:38 | ||||||
Qt5.2 . «Вручную» создал комбобокс, свою модель не использую.
Нужно обновить в нём информацию. Предварительно вызываю:
и получаю ошибку выполнения
Та же ошибка возникает когда я поштучно удаляю строки, на последней удаляемой строке. Очистка пустого комбобокса ошибок не даёт. Комбобоксы в диалоге работает без ошибок. Где я ошибаюсь? |
| Автор: ALEXRAGE 7.2.2014, 11:19 |
| Скорее всего где-то происходит обращение к ComboBox по индексу элемента уже после очистки. Получается выход за пределы массива. Нужно проверить остальной код и там где происходит обращение к элементу поставить проверку, что индекс не больше количества элементов в данный момент. |
| Автор: OlegIT 7.2.2014, 12:33 |
| Не вижу где это может быть. Свою модель не использую, используется по умолчанию внутренняя, так что с этой стороны проблем не должно быть. Элементы добавляю листом (MyCombo->addItems(QStringList)). Прохожу дебагером, дальше очистки MyCombo->clear(); или удаления элементов поштучно не иду, тут же ошибка. |
| Автор: ALEXRAGE 7.2.2014, 12:53 |
Это говорит о том, что в какой-то момент произошел вызов элемента за пределами QList. Либо индекс меньше нуля, либо больше, чем count(). А вот где это присходит по тому куску кода, который вы привели, понять очень сложно. Что там вообще происходит? Что за проект? |
| Автор: vinter 7.2.2014, 14:22 |
| когда срабатывает assert, ты всегда может увидеть стек вызовов, который к нему привёл. Посмотри его и найдёшь ошибку. |
| Автор: OlegIT 7.2.2014, 15:26 |
Спасибо, гляну. Сделал тестовый проект обрезанием, оставил обвязку QGraphicsScene, комбобокс и кнопку очистить. Всё работает. |
| Автор: OlegIT 10.2.2014, 09:10 |
Программа рушится так, что ни какого стека нет, дебагер тоже вылетает. Прошу прощения, поторопился обратится за помощью. Наведённая ошибка была из-за не внимательности. |