Я хочу расширить dropEvent () (QListWidget), следует ли полностью переопределить его?

У меня есть QListWidget, и я настроил его на прием капель, режим DragDrop и т. Д., И я могу перемещать QListWidgetItems повсюду (внутри QListWidget, конечно).

Мне нравится такое поведение, и я хочу, чтобы оно оставалось неизменным, но я также хочу, чтобы мой QListWidget принимал отбрасывание от QTreeWidget. Если я попытаюсь повторно реализовать dropEvent () моего QListWidget, я потеряю поведение по умолчанию.

Есть ли способ просто расширить текущее поведение, чтобы иметь как перетаскивание между элементами списка виджетов, так и перетаскивание из дерева в виджет списка, или мне нужно полностью переписать оба поведения в моей повторной реализации dropEvent ()?

Большое спасибо за любые ответы :)


person hytromo    schedule 12.09.2012    source источник


Ответы (2)


No.

Подкласс QListWidget, переопределение

virtual void    QListWidget::dropEvent ( QDropEvent * event )

и явно называть

QListWidget::dropEvent(event);

всякий раз, когда вам нужно поведение по умолчанию.

Как вызвать функцию родительского класса из функции производного класса?

person UmNyobe    schedule 12.09.2012
comment
Спасибо вам обоим, как я собираюсь различать элементы listwidget и treewidget, когда оба они возвращают application / x-qabstractitemmodeldatalist как тип пантомимы? - person hytromo; 12.09.2012

Два пути:

  1. реализовать автономный фильтр событий и заставить его действовать в соответствии с QEvent::Drop . Установите его в исходный виджет QListWidget. Верните false, чтобы впоследствии был вызван исходный обработчик dropEvent().

  2. наследовать от QListWidget, переопределить dropEvent(evt) и в качестве последнего оператора вызвать QListWidget::dropEvent(evt);. Ваше первоначальное поведение будет сохранено.

person Pavel Zdenek    schedule 12.09.2012
comment
Спасибо вам обоим, как я собираюсь различать элементы listwidget и treewidget, когда оба они возвращают application / x-qabstractitemmodeldatalist как тип пантомимы? - person hytromo; 12.09.2012
comment
QDropEvent- ›source () -› наследует (QTreeWidget) - person Pavel Zdenek; 12.09.2012