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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Как прописать метод дочернего объекта в родительском классе?  (Прочитано 8337 раз)
PavelVX
Гость
« Ответ #15 : Май 29, 2012, 10:15 »

Есть форма, на ней 2 виджета: QListWidget1, QListWidget2.
Хочу сделать перетаскивание с 1 на 2. Для этого мне необходимо в QListWidget2 переопределить методы. Я сделал наследника так:
Код:
class listViewForDrop: public QListWidget
{
        Q_OBJECT;

public:
        listViewForDrop(QWidget *widget = 0);
        ~listViewForDrop();

protected:
    void dragEnterEvent(QDragEnterEvent *event);
    void dropEvent(QDropEvent *event);
    void dragMoveEvent(QDragMoveEvent *event);
    void dragLeaveEvent(QDragLeaveEvent *event);

};

/*реализация*/

void listViewForDrop::dropEvent(QDropEvent *event)
{
    if (event->mimeData()->hasFormat("application/x-qabstractitemmodeldatalist"))
    {
//        event->setDropAction(Qt::MoveAction);
        event->setDropAction(Qt::CopyAction); /*пока так, но вообще надо сделать именно перенос*/
        event->accept();

    } else {
        event->ignore();
    }
}

Но, если я вас правильно понимаю, то вы утверждаете, что можно и не делать наследника и все будет работать? Но как? Я вот именно этот момент и не могу понять, если я не перепишу эти 4 класса, у меня не будет приема!
Записан
Bepec
Гость
« Ответ #16 : Май 29, 2012, 10:24 »

Конечно я сейчас предложу фееричный костыль.(см. мою подпись)

Что тебе мешает производить драг & дроп на основной форме? Что мешает сделать основной виджет посредником между view? Улыбающийся

Если уж дойти до страаааашной системы, то так вообще можно намутить дофига всего Подмигивающий
Записан
PavelVX
Гость
« Ответ #17 : Май 29, 2012, 10:38 »

Мешает отсутствие простоты ... Улыбающийся
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #18 : Май 29, 2012, 10:53 »

Код
C++ (Qt)
SpecTableModel * modelCrit = new SpecTableModel(&dlg); //наследник от стандартной модели со своими прибабахами
У тебя уже есть отнаследованный класс - вот в нем и переопределяй все эти даты и дропевенты, благо модель всё это поддерживает, если только тебе посимвольной расскраски не надо, хотя и ее можно с оперделенной долей извращения Улыбающийся
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
PavelVX
Гость
« Ответ #19 : Май 29, 2012, 11:45 »

Эхх, елы палы .....
Это ГЛОБАЛЬНЫЙ КЛАСС! В серьезных формах я его наследую и переопределяю только data.
Тут смысла нет делать наследование.
Записан
Bepec
Гость
« Ответ #20 : Май 29, 2012, 12:17 »

Павел, помоему вы бредите. У вас уже есть наследование, в других частях проекта у вас аналогичное наследование и тут вы заявляете - МНЕ НЕ НУЖНО НАСЛЕДОВАНИЕ! АРРРРРРрррРРррРРрр...

PS no comments...
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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