I tried to override the keypressevent for my lineEdit control using eventFiltering.
but when i run my application it doesnt do anything! i even set a break point inside the eventFiltering method , but i never get there!!?
This is my source codes :
MainWindow.h
Qt Code:
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3.  
  4. #include <QMainWindow>
  5.  
  6. namespace Ui {
  7. class MainWindow;
  8. }
  9.  
  10. class MainWindow : public QMainWindow
  11. {
  12. Q_OBJECT
  13.  
  14. public:
  15. explicit MainWindow(QWidget *parent = 0);
  16. ~MainWindow();
  17.  
  18.  
  19. protected:
  20. bool eventFilter( QObject* sender, QEvent* event);
  21.  
  22. private:
  23. Ui::MainWindow *ui;
  24. };
  25.  
  26. #endif // MAINWINDOW_H
To copy to clipboard, switch view to plain text mode 

MainWindow.cpp:
Qt Code:
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include "QMessageBox"
  4. #include <QKeyEvent>
  5. MainWindow::MainWindow(QWidget *parent) :
  6. QMainWindow(parent),
  7. ui(new Ui::MainWindow)
  8. {
  9. ui->setupUi(this);
  10. }
  11.  
  12. bool MainWindow::eventFilter(QObject *sender, QEvent *event)
  13. {
  14. if (sender == ui->lineEdit)
  15. {
  16. if(event->type()== QEvent::KeyPress)
  17. {
  18. QKeyEvent * keyEvent = (QKeyEvent*)(event);
  19. if( keyEvent->key() == Qt::Key_Control)
  20. {
  21. QMessageBox::information(this,"Salam","Test");
  22. return true;
  23. }else
  24. {
  25. return false;
  26. }
  27. }
  28. }
  29. return QWidget::eventFilter(sender,event);
  30. }
  31.  
  32. MainWindow::~MainWindow()
  33. {
  34. delete ui;
  35. }
To copy to clipboard, switch view to plain text mode