Qt eventFilter

索引サイト




#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include

namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
bool eventFilter(QObject *obj, QEvent *event);
private:
Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H




#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qdebug.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->pushButton->installEventFilter(this);
ui->comboBox_1->installEventFilter(this);
ui->comboBox_2->installEventFilter(this);
ui->lineEdit_1->installEventFilter(this);
ui->lineEdit_2->installEventFilter(this);
ui->lineEdit_3->installEventFilter(this);
}

MainWindow::~MainWindow()
{
delete ui;
}
bool MainWindow::eventFilter(QObject *object, QEvent *event)
{
if (event->type() == QEvent::FocusIn)
{
if (object == ui->pushButton){qDebug() << "pushButton FocusIn";}
if (object == ui->comboBox_1){qDebug() << "comboBox_1 FocusIn";}
if (object == ui->comboBox_2){qDebug() << "comboBox_2 FocusIn";}
if (object == ui->lineEdit_1){qDebug() << "lineEdit_1 FocusIn";}
if (object == ui->lineEdit_2){qDebug() << "lineEdit_2 FocusIn";}
if (object == ui->lineEdit_3){qDebug() << "lineEdit_3 FocusIn";}
}
if (event->type() == QEvent::FocusOut)
{
if (object == ui->pushButton){qDebug() << "pushButton FocusIn";}
if (object == ui->comboBox_1){qDebug() << "comboBox_1 FocusOut";}
if (object == ui->comboBox_2){qDebug() << "comboBox_2 FocusOut";}
if (object == ui->lineEdit_1){qDebug() << "lineEdit_1 FocusOut";}
if (object == ui->lineEdit_2){qDebug() << "lineEdit_2 FocusOut";}
if (object == ui->lineEdit_3){qDebug() << "lineEdit_3 FocusOut";}
}
return false;
}




AX