извините за мой плохой английский.
В настоящее время у меня есть приложение, имеющее 2 компонента: 1 виджет для QgsMapCanvas (называемый A) для загрузки карты и действия над ним, и 1 окно виджета для управляющего действия (называемого B).
Как только я рисую линию в окне A, затем выбираю эту строку, данные этих строк будут загружены в tableView на B. У меня тут 2 проблемы:
- Иногда этоСбой при выделении строки.
- Иногда он успешно загружал данные в таблицу, но когда я щелкнул мышью на представлении A, он также разбился.
Я уже использовал отладчик GDB, но, похоже,остановитесь только на return a.exec (), трудно найти причину. У кого-нибудь есть подсказка для этого странного вопроса? Спасибо.
Я использовал Valgrind для проверки памяти, тогда он показывает
Недопустимое чтение размера 8 в TableModel :: insertRows (int, int, QModelIndex const &) в / home / lavie / QT_workspace / CPS_V2_MAP/CPS_MAPS_WGET_GIS/cps_tablemodel.cpp:133
Это сегмент кода: cps_tablemodel.cpp: 133
bool TableModel :: insertRows (позиция int, строки int, константа QModelIndex & index) {
Q_UNUSED(index);
beginInsertRows(QModelIndex(), position, position+rows-1);
for (int row=0; row < rows; row++) {
CPS_Target_LandMark mark = CPS_Target_LandMark(0, 0, 0, 0, 0, 0);
target_marks.insert(position, mark);
}
endInsertRows(); // line 133 here
return true;
}