Russian Qt Forum
Ноябрь 23, 2024, 06:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перегрузка методов базовых классов  (Прочитано 3932 раз)
Chester
Гость
« : Март 31, 2010, 11:00 »

Доброго времени суток!!!
Есть один такой вопросик общего характера.. вот когда я перегружаю какой-нибудь метод класса ... нужно ли мне,после моего собственного определения метода передавать управление его стандартному методу Непонимающий

Например,переопределяю метод setEditorData класса QItemDelegate
Код
C++ (Qt)
void setEditorData(QWidget *editor,const QModelIndex &index) const{
    double value = index.model()->data(index, Qt::EditRole).toDouble();
    QDoubleSpinBox *dsb = static_cast<QDoubleSpinBox*>(editor);
    dsb->setValue(value);
QItemDelegate::setEditorData(editor,index);// nugna li eta strochka??
  }
 

т.е. нужно ли писать QItemDelegate::setEditorData(editor,index);Непонимающий
Записан
BRE
Гость
« Ответ #1 : Март 31, 2010, 11:12 »

Если тебе нужно выполнить те действия, которые происходят в методе базового класса, то нужно.
А если ты заново сам определил поведение этого метода, то не нужно.
Записан
cya-st
Гость
« Ответ #2 : Март 31, 2010, 11:37 »

Зависит от ситуации, но именно в твоем варианте нужно.
Записан
Chester
Гость
« Ответ #3 : Март 31, 2010, 13:35 »

спасибо за ответы!!!
просто во многих примерах этой строчки нет...поэтому и есть сомнения - нужна ли она вообще )))
напр. http://doc.crossplatform.ru/qt/4.5.0/model-view-delegate.html
Записан
Chester
Гость
« Ответ #4 : Март 31, 2010, 14:43 »

Я так полагаю,что эта строчка нужна, если по каким либо причинам не определится *dsb, т.е. если не сработает мой метод должен вызваться родной метод...
Или вызов стандартного метода должен как-то дополнить мой метод???
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.075 секунд. Запросов: 21.