当前位置: 代码迷 >> QT开发 >> QT里关于eventFilter例子为何不能执行
  详细解决方案

QT里关于eventFilter例子为何不能执行

热度:56   发布时间:2016-04-25 04:57:33.0
QT里关于eventFilter例子为何不能执行,请指教
用的qt4.8,qt creater2.4.1
源码如下:
#include <QMainWindow>

class MainWindow : public QMainWindow
 {
 public:
  MainWindow();

 protected:
  bool eventFilter(QObject *obj, QEvent *ev);

 private:
  QTextEdit *textEdit;
 };

 MainWindow::MainWindow()
 {
  textEdit = new QTextEdit;
  setCentralWidget(textEdit);

  textEdit->installEventFilter(this);
 }

 bool MainWindow::eventFilter(QObject *obj, QEvent *event)
 {
  if (obj == textEdit) {
  if (event->type() == QEvent::KeyPress) {
  QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
  qDebug() << "Ate key press" << keyEvent->key();
  return true;
  } else {
  return false;
  }
  } else {
  // pass the event on to the parent class
  return QMainWindow::eventFilter(obj, event);
  }
 }

------解决方案--------------------
#include <QKeyEvent>
------解决方案--------------------
探讨

#include <QKeyEvent>
  相关解决方案