请教一个事件过滤的问题

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; }           主要问题:控件矩形中的颜色不能够随鼠标移动刷新,只有当鼠标再次点击画笔时,颜色才能刷新。求解决办法!!!
...全文
28 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

473

社区成员

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

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