首先安装事件过滤器:
//安装事件过滤器 ui.edt_power->installEventFilter(this);// ui.edt_title->installEventFilter(this);// ui.edt_softname->installEventFilter(this);// ui.edt_kefu->installEventFilter(this);// ui.edt_price->installEventFilter(this);//
.h里声明函数:
public slots://事件槽函数 bool eventFilter(QObject* obj, QEvent* event); // 添加事件过滤器声明
然后判断事件类型和控件,执行操作:
bool jjsoft::eventFilter(QObject* obj, QEvent* event) { //event->type(); if (event->type() == QEvent::FocusIn) { if (obj == ui.edt_power) { ui.label_demo->setPixmap(QPixmap(":/ui/edt_power.png")); } else if (obj == ui.edt_title) { ui.label_demo->setPixmap(QPixmap(":/ui/edt_title.png")); } } return QWidget::eventFilter(obj, event); // 最后将事件交给上层对话框 }