【发布时间】:2012-02-12 23:33:20
【问题描述】:
我在网上搜索了实现这一点的可能性,但没有找到解决方案。有没有一种简单的方法可以从列表中删除放置在非接收区域甚至应用程序窗口之外的项目?
到目前为止,我接受删除键以通过快捷方式删除项目:
QShortcut *shortcut = new QShortcut(QKeySequence(Qt::Key_Delete), myList);
shortcut->setContext(Qt::WidgetShortcut);
connect(shortcut, SIGNAL(activated()), this, SLOT(deleteSelection()));
但是由于我通过拖放将项目添加到列表中,因此我也希望能够以相同的方式删除它们。列表中的项目也可以通过拖放进行排序。
感谢任何提示或链接。
【问题讨论】:
-
在 dragLeaveEvent 而不是 dropEvent 上删除它们
-
@KamilKlimek 所以你认为我必须对小部件进行子类化才能做到这一点?难道没有别的办法了吗?我会认为这是 QListWidget 想要的非常标准的东西。
-
尝试安装事件过滤器并从中捕获 dropEvent
标签: qt drag-and-drop qlistwidget