Сбой в приложении с использованием QTableView и QgsCanvas - PullRequest
1 голос
/ 09 октября 2019

извините за мой плохой английский.

В настоящее время у меня есть приложение, имеющее 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;

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...