我有一个QListWidget,我已将其设置为接受drop,模式为DragDrop等,我可以在所有地方移动QListWidgetItems(当然在QListWidget内)。
我喜欢这种行为,我希望它按原样使用,但我也希望我的QListWidget也接受来自QTreeWidget的丢弃。如果我尝试重新实现我的QListWidget的dropEvent(),那么我将失去默认行为。
有没有办法只扩展当前的行为,以便在listwidget项之间拖放和从treewidget拖放到listwidget,或者我必须在我的dropEvent()重新实现中完全重写这两个行为?
非常感谢您的回答:)
答案 0 :(得分:2)
两种方式:
实施一个独立的event filter并使其对QEvent::Drop
采取行动。原始QListWidget上的Install it。返回 false ,以便之后调用原始dropEvent()
处理程序。
继承自QListWidget
,重新实施dropEvent(evt)
,并作为最后一项陈述,致电QListWidget::dropEvent(evt);
。您的原始行为将被保留。
答案 1 :(得分:1)
没有
子类QListWidget
,重新实现
virtual void QListWidget::dropEvent ( QDropEvent * event )
并明确调用
QListWidget::dropEvent(event);
只要您需要默认行为。
How to call a parent class function from derived class function?