我想扩展dropEvent()(QListWidget),我应该完全重新实现它吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想扩展dropEvent()(QListWidget),我应该完全重新实现它吗?相关的知识,希望对你有一定的参考价值。
[我有一个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);
。您的原始行为将保留。
以上是关于我想扩展dropEvent()(QListWidget),我应该完全重新实现它吗?的主要内容,如果未能解决你的问题,请参考以下文章
QT窗口拖拽功能简单应用(处理dragEnterEvent和dropEvent事件,不同的事件有不同的信息,比如mimeData)