[我有一个QListWidget,我将它设置为接受放置,模式为DragDrop等,我可以在所有位置(当然在QListWidget内)移动QListWidgetItems。
我喜欢这种行为,我希望它保持原样,但我也希望我的QListWidget也接受来自QTreeWidget的删除。如果我尝试重新实现QListWidget的dropEvent(),那么我将失去默认行为。
是否有任何方法可以扩展当前行为,以便同时在listwidget项之间拖放以及从treewidget到listwidget拖放,或者我必须在我的dropEvent()重新实现中完全重写这两种行为?
非常感谢您的回答:)
编号
子类QListWidget
,重新实现
virtual void QListWidget::dropEvent ( QDropEvent * event )
并明确呼叫
QListWidget::dropEvent(event);
只要您需要默认行为。
How to call a parent class function from derived class function?
两种方法:
实现独立的event filter,并使其作用于QEvent::Drop
。原始QListWidget上的Install it。返回false,以便随后调用原始的dropEvent()
处理程序。
继承自QListWidget
,重新实现dropEvent(evt)
,最后,调用QListWidget::dropEvent(evt);
。您的原始行为将保留。