История изменений
Исправление Xintrea, (текущая версия) :
Ну вот я обнаружил такую дичь, что в глубинах QTableView::mouseMoveEvent() может вызываться setSelection() и соответственно генерироваться selectionChanged(), причем в передаваемых QIndex будут ячейки не те, с которыми работает пользователь, а соседние.
Происходит это раз в 15-20 попыток работы со строкой таблицы, если нагрузить проц какой-нибудь задачей, и быстро двигать мышкой.
https://i.imgur.com/fA3NCma.png
Поэтому я и думаю: а нафига вообще вызывать QTableView::mouseMoveEvent()? Тем более, что в примерах драг-анд-дропа в переопределенном mouseMoveEvent() нет вызова родительского обработчика mouseMoveEvent(): https://code.qt.io/cgit/qt/qtbase.git/tree/examples/widgets/draganddrop/dragg....
Наверно, это не просто так?
Исходная версия Xintrea, :
Ну вот я обнаружил такую дичь, что в глубинах QTableView::mouseMoveEvent() может вызываться setSelection() и соответственно генерироваться selectionChanged(), причем в передаваемых QIndex будут ячейки не те, с которыми работает пользователь, а соседние.
Происходит это раз в 15-20 попыток работы со строкой таблицы, если нагрузить проц какой-нибудь задачей, и быстро двигать мышкой.
https://i.imgur.com/fA3NCma.png
Поэтому я и думаю: а нафига вообще вызывать QTableView::mouseMoveEvent()? Тем более, что в примерах драг-анд-дропа в переопределенном mouseMoveEvent() нет вызова родительского. Наверно, это не просто так.