Russian Qt Forum

Qt => Вопросы новичков => Тема начата: xintrea от Декабрь 29, 2020, 16:29



Название: Нужно ли пробрасывать mouseMoveEvent в QTableView?
Отправлено: xintrea от Декабрь 29, 2020, 16:29
Возник такой теоретический вопрос: если в классе, унаследованном от QTableView, имеется своя реализация mouseMoveEvent, то нужно ли в моменты, когда собственной обработки внутри переопределенного mouseMoveEvent не предусмотрено, вызывать родительский mouseMoveEvent?

Код:
void MyView::mouseMoveEvent(QMouseEvent *event)
{
  ...
  QTableView::mouseMoveEvent(event);
}

Можно ли вообще не делать вызова родительского mouseMoveEvent? На что отсутствие вызова родительского mouseMoveEvent может повлиять?

На первый взгляд действительно, родительский обработчик mouseMoveEvent можно вообще не вызывать. Но может быть, есть какие-то неочевидные ситуации? Например, если не вызывать, то перестанет правильно работать драг-анд-дроп в режиме мультивыбора, или там перестанет выделяться строка при настройке QAbstractItemView::SelectRows после клика мышки на незаполненной строками области таблицы, или еще какая-нибудь замудренная хрэнь?


Название: Re: Нужно ли пробрасывать mouseMoveEvent в QTableView?
Отправлено: Igors от Декабрь 30, 2020, 10:17
Можно ли вообще не делать вызова родительского mouseMoveEvent? На что отсутствие вызова родительского mouseMoveEvent может повлиять?
В отладчике зайдите в родительский mouseMoveEvent и посмотрите что он делает. Это надежнее чем полагаться на чье-то мнение, да и быстрее.


Название: Re: Нужно ли пробрасывать mouseMoveEvent в QTableView?
Отправлено: kambala от Декабрь 30, 2020, 14:04
а можно просто в исходники заглянуть, благо они доступны