Название: Переопределение события Отправлено: ruzik от Февраль 13, 2011, 22:00 Здравствуйте, вот возник вопрос как можно сделать следующее:
У меня есть событие QLineEdit::mouseMoveEvent, есть класс наследуемый от QLineEdit, и в нем я хочу переопределить функцию mouseMoveEvent, что бы она выполняла нужные мне действия, но я так же хочу сделать так что бы можно было дальше переопределять эту функцию, а действия по событию еще выполнялись Название: Re: Переопределение события Отправлено: shirushizo от Февраль 13, 2011, 22:19 Вы про это?
Код: class myLineEdit : public QLineEdit Название: Re: Переопределение события Отправлено: ruzik от Февраль 13, 2011, 22:30 Да, и позвольте задать еще 2 вопроса, они скорее про С++
Как я понял virtual "накладывает" определения функций И 2: void myLineEdit ::mouseMoveEvent( QMouseEvent *event) { ... myLineEditExt ::mouseMoveEvent(event); } А зачем писать myLineEditExt ::mouseMoveEvent(event); в событии, к чему это? Название: Re: Переопределение события Отправлено: Disaron от Февраль 13, 2011, 22:38 Да, и позвольте задать еще 2 вопроса, они скорее про С++ По первому утверждению: Вам надо немного почитать матчасть по С++.Как я понял virtual "накладывает" определения функций И 2: void myLineEdit ::mouseMoveEvent( QMouseEvent *event) { ... myLineEditExt ::mouseMoveEvent(event); } А зачем писать myLineEditExt ::mouseMoveEvent(event); в событии, к чему это? По второму: при переопределении метода, метод предка не выполняется, указанная строка myLineEditExt::mouseMoveEvent(event) как раз вызывает метод предка, чтобы отработало все с ним связанное. Название: Re: Переопределение события Отправлено: ruzik от Февраль 13, 2011, 22:43 Насколько я помню virtual ставиться когда функция будет переопределена, просто подумал немножко не то
P.S. спасибо за помощь Название: Re: Переопределение события Отправлено: Disaron от Февраль 13, 2011, 22:55 Насколько я помню virtual ставиться когда функция будет переопределена, просто подумал немножко не то Кстати автор немного ошибся, там должно быть:P.S. спасибо за помощь Код: void myLineEditExt::mouseMoveEvent(QMouseEvent *event) Название: Re: Переопределение события Отправлено: shirushizo от Февраль 14, 2011, 19:52 Кстати автор немного ошибся, там должно быть: Каюсь - переставил местами родителя и потомка, исправил.... |