• 4667阅读
  • 2回复

[提问]给QTextBrowser安装事件过滤器失败 [复制链接]

上一主题 下一主题
离线qlizhi
 
只看楼主 倒序阅读 楼主  发表于: 2011-10-31
UI文件结构很简单就是一个QWidget里面一个QTextBrowser,我想过滤QTextBrowser的鼠标事件:(部分代码)
ui.textBrowser->installEventFilter(this);
  1. bool English::eventFilter(QObject *target, QEvent *event)
  2. {
  3. if (target == ui.textBrowser)
  4. {
  5.   switch(event->type())
  6.   {
  7.     case QEvent::MouseButtonPress:
  8.      {
  9.       m_mousePressEvent(target, event);
  10.       return true;
  11.      }
  12.     case QEvent::MouseMove:
  13.      {
  14.       m_mouseMoveEvent(target, event);
  15.       return true;
  16.      }
  17.     case QEvent::KeyPress:
  18.      {
  19.       const QKeyEvent *keyEvent = static_cast<QKeyEvent *>( event );
  20.       switch( keyEvent->key() )
  21.       {
  22.       case Qt::Key_Up:
  23.        {
  24.         int i = 0;
  25.         return true;
  26.        }
  27.       case Qt::Key_Down:
  28.        {
  29.         int i = 0;
  30.         return true;
  31.        }
  32.       }
  33.      }
  34.     default:
  35.      break;
  36.   }
  37. }
  38. return QWidget::eventFilter(target, event);
  39. }
上面代码不知道哪里有问题, 无法过滤ui.textBrowser的事件。
离线dbzhang800

只看该作者 1楼 发表于: 2011-10-31
呵呵,不清楚是第几次看到这种问题。几乎 AbstractScrollArea 的每个派生类都被问了几遍了。

简单说:先去熟悉 AbstractScrollArea 的界面结构,搞清楚你是真想过滤 AbstractScrollArea 的事件,还是它的 viewport() 上的事件
离线qlizhi
只看该作者 2楼 发表于: 2011-10-31
非常感谢dbzhang800 ,我搞明白了。
快速回复
限100 字节
 
上一个 下一个