请教一个事件过滤的问题

weixin_38111513 2019-09-19 05:28:07
在一个窗口程序下实现一个取窗口颜色的控件,控件左边是一个颜色填充的矩形,右边是个“画笔”图标。要求:点击“画笔”后,1.禁止窗口上的其他控件响应鼠标事件,这个控件可以响应鼠标事件。2.控件上的                                               矩形的颜色随着鼠标的移动而变化,颜色就是鼠标的屏幕坐标点的颜色。我的代码:void XXX::mousePressEvent(QMouseEvent *event){           if(!m_bPenDown)   //第一次点击画笔           {                       pApp->installEventFilter(this);            //   pApp = (QApplication*)QApplication::instance()                       。。。            }           esle  //再次点击画笔                     {                        m_bPenDown = false;            }}void XXX::eventFilter(QObject *obj, QEvent *event){      if (event->type() == QEvent::MouseButtonPress)      {               if(Qt::LeftButton == ((QMouseEvent*)event)->button())               {                            if(鼠标点击发生在控件之外)                                                      {                                     获取颜色;                                     emit  colorChange(XXX);                                     update();                            }                           else                           {                                     pApp->removeEventFilter();                           }               }        }       else if(event->type() == QEvent::MouseMove)       {                    获取颜色;                    update();       }         return true; }           主要问题:控件矩形中的颜色不能够随鼠标移动刷新,只有当鼠标再次点击画笔时,颜色才能刷新。求解决办法!!!
...全文
25 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
现在很多做透明加解密的初学者都比较困惑,不知从何下手,我也是如此,从什么都不会开始,慢慢肯文件系统内幕,到OSR上面请教,四个月的时间还是收获颇丰。其实真正研究以后会发现,很多都是体力活,要不断的去跟踪文件的操作流程。在这里发一个基于minifilter的透明加解密的驱动源码仅供大家参考,其中也实现了对文件标识的处理,文件标识放在文件尾部。算是抛砖引玉吧。坦白的说,这个代码并不稳定(偶尔与norton杀毒软件会有冲突),但是我觉得整个流程是正确的,可能有些细节还没有考虑清楚,我觉得对初学者还是有一定帮助吧,当然大虾们可以跳过,呵呵。另外,有关加解密算法的代码由于不是我写的,也不好公开,所以我把相关代码用“\\\”给注释掉了(但没有去掉),请大家见谅,不过不会对整个流程产生影响。大家可以重点看一下各个派遣函数的实现。 欢迎大家拍砖,觉得有点意思就顶一下啊,在看代码的过程中如果有什么好的建议,也希望能告诉我。 最后非常感谢XiangXiangRen,zzbwang,neak47等网友在这段时间内对我的帮助。XiangXiangRen的书以及zzbwang的帖子对我完成这项工作有很大的帮助和参考价值,在此谨与大家分享。 编译环境:WDK6001.18002 XP x86 PS: 您可以将附件中的代码进行修改和转发,但转发时请注明出处。 http://bbs.driverdevelop.com/htm_data/39/1001/119736.html

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧