qt禁止拖动_在Qt中捕获拖动取消事件

我在Qt中捕获应用程序范围事件时遇到了一些困难 .

我的目的是捕获某些GUI应用程序中的每个用户操作 . 当然,我已经覆盖了 QApplication::notify 处理程序并在那里处理不同类型的应用程序范围事件 . 像这样的东西:

bool CoolApplication::notify(QObject *obj, QEvent *e)

{

switch (e->type()) {

case QEvent::MouseButtonPress:

case QEvent::MouseButtonRelease:

// Handle mouse

break;

case QEvent::Wheel:

// Handle wheel

break;

case QEvent::KeyPress:

case QEvent::KeyRelease:

// Handle keyboard and so on

break;

default:

break;

}

return QApplication::notify(obj, e);

}

在用户开始拖放操作之前,这非常有效 . 鼠标按键事件处理得很好,它在我的处理程序中捕获,生活在那里很美 . 当我尝试在Windows上捕获鼠标释放事件时,问题就出现了 .

进入拖动操作时,QApplication :: notify不再处理鼠标和键盘事件 . 有可能在成功时捕获drop事件(我可以将 case QEvent::Drop branch添加到我的处理程序中),但是如何使用Esc捕获忽略的drop或者取消drop?似乎不可能直接完成,也许我可以捕获拖动事件循环终止事件或类似的东西?或者甚至可能有人知道直接的方法吗?

编辑:再次转移我需要捕获应用程序范围事件的注意力,而不是小部件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值