• 7874阅读
  • 8回复

[提问]请教主窗口与里面的控件的事件截获问题 [复制链接]

上一主题 下一主题
离线lyjbbq
 

只看楼主 倒序阅读 楼主  发表于: 2011-07-28
       我有几个窗口,想通过重载bool event(QEvent *),在里面加入一下事件,我通过QEvent::MouseButtonPress这个枚举值来判断窗口是否有鼠标点解,问题就出现在这里,我窗口里面还有一些控件,如tabwidget和pushbutton,要是我点鼠标左键,而且鼠标落在窗口空白处,这个事件会响应出来,但是,要是鼠标落在窗口里面的控件上,这个事件则不会被响应,请问怎样才能使窗口直接截获这个事件,而不是被控件挡住了?
离线dbzhang800

只看该作者 1楼 发表于: 2011-07-28
用 事件过滤器
离线lyjbbq

只看该作者 2楼 发表于: 2011-07-28
大侠可否具体点?如何过滤?
离线907398237
只看该作者 3楼 发表于: 2011-07-28
子窗口->setAttribute(Qt::WA_TransparentForMouseEvents)
离线lyjbbq

只看该作者 4楼 发表于: 2011-07-28
楼上的方法试过了,直接点窗口上的控件时,主窗口还是没有截获MouseButtonPress事件
离线lyjbbq

只看该作者 5楼 发表于: 2011-07-28
要是直接对主窗口上的控件,如pushbutton使用setAttribute(Qt::WA_TransparentForMouseEvents),这样的话,主窗口却是能得到鼠标事件,但是这样却使得pushbutton无法使用了
离线wenxuan
只看该作者 6楼 发表于: 2011-07-29
可不可以给控件安装过滤器  子窗口->installEventFilter(父窗口);
离线lyjbbq

只看该作者 7楼 发表于: 2011-07-29
但是我窗口上的控件比较多,要是这样的话,不就是每个控件都要安装过滤器了?
离线wangjieest

只看该作者 8楼 发表于: 2012-11-06
窗口的子控件激活的话,窗口应该也是激活的状态的...
用Focus 或者 Actived 试试吧
快速回复
限100 字节
 
上一个 下一个